您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何检测HttpServletRequest的TLS版本?

如何检测HttpServletRequest的TLS版本?

这在Java中不切实际。它需要修改JSSE实现或插入替代方法

我最终通过部署How’s My SSL并从客户端使用跨域AJAX来检查SSL状态并将其报告给我的应用服务器,从而解决了这一问题。

您需要来自客户端的未经代理的直接请求才能正确评估其SSL状态。不要将HTTPS负载平衡器放在“我的SSL方式”前面。它将破坏它并给您不正确的结果。

这是客户端JavaScript的一小段片段,应使用公共How’s My SSL服务(我建议部署您自己的SSL)来工作:

$.getJson('https://www.howsmyssl.com/a/check')
.done(function (result) {
    $.post('/logs', {
                    name: 'howsmyssl',
                    level: 'info',
                    message: result
    });
})
.fail(function(err) {
    $.post('/logs', {
                    name: 'howsmyssl',
                    level: 'error',
                    message: 'Could not reach howsmyssl'
    });
});

您将需要在您的应用服务器上的 上运行一个REST端点,该端点可以接收POST来捕获此消息。您可以根据自己的喜好更改该路径和消息格式。该端点应经过身份验证,并应在日志中添加事件时间,经过身份验证的主体(用户)以及其他可能的信息,例如IP地址。

结果的内容如下所示(漂亮打印以使其更易于阅读):

{
    "given_cipher_suites": [
        "TLS_GREASE_IS_THE_WORD_8A",
        "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
        "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
        "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
        "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
        "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
        "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
        "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
        "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
        "TLS_RSA_WITH_AES_128_GCM_SHA256",
        "TLS_RSA_WITH_AES_256_GCM_SHA384",
        "TLS_RSA_WITH_AES_128_CBC_SHA",
        "TLS_RSA_WITH_AES_256_CBC_SHA",
        "TLS_RSA_WITH_3DES_EDE_CBC_SHA"
    ],
    "ephemeral_keys_supported": true,
    "session_ticket_supported": true,
    "tls_compression_supported": false,
    "unkNown_cipher_suite_supported": false,
    "beast_vuln": false,
    "able_to_detect_n_minus_one_splitting": false,
    "insecure_cipher_suites": {
    },
    "tls_version": "TLS 1.2",
    "rating": "Probably Okay"
}

您可以将此日志记录到日志聚合器或数据库中,以供日后查询以查找要呼叫或发送电子邮件特定用户。您甚至可以提醒用户您的应用程序中浏览器TLS的空白,并特别强调即将到来的TLS 1.2截止日期以及他们可以采取的更新浏览器补偿措施。

Jave 2022/1/1 18:15:12 有286人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶