【问题标题】:Enable only TLSv1.2 in apache 2.2.8在 apache 2.2.8 中仅启用 TLSv1.2
【发布时间】:2018-02-14 21:27:48
【问题描述】:

根据 apache 2.2 文档 https://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslprotocol OpenSSL 1.0.1 需要支持 TLSv1.2,所以我设置了 OpenSSL 1.1.1-pre1

$openssl version -a
OpenSSL 1.1.1-pre1 (alpha) 13 Feb 2018
built on: Thu Feb 15 01:59:36 2018 UTC  
OPENSSLDIR: "/usr/local/ssl"
ENGINESDIR: "/usr/local/lib/engines-1.1"

下面是我的 Ubuntu 版本

Distributor ID: Ubuntu
Description:    Ubuntu 8.04.1
Release:        8.04
Codename:       hardy

以下是我在ssl.conf 中添加的 ssl 配置

SSLProtocol -ALL +TLSv1.2 ##line 92
SSLCipherSuite HIGH:MEDIUM:-LOW:-aNULL

当我尝试启动 apache 服务时看到以下错误

$ sudo service apache2 start
* Starting web server apache2                                                                                                                          
Syntax error on line 92 of /etc/apache2/conf.d/ssl.conf:
SSLProtocol: Illegal protocol 'TLSv1.2'

这是我第一次进行 ubuntu apache 设置,所以不确定其他配置更改,在为TLSv1.2 安装 OpenSSL 1.1.1-pre1 后是否需要设置其他任何东西?或者是否需要进行任何其他配置更改才能使 TLSv1.2 在 apache 2.2.8 上工作?

【问题讨论】:

标签: ubuntu openssl apache2


【解决方案1】:

我遇到了类似的问题。我设法在Build-Scripts package via GitHub 的帮助下安装了 OpenSSL 1.0.2o,然后从 Apache 2.2.8 源代码重建了mod_ssl(按照Apache bug 49034 上的附件的行修补几个文件以得到它编译)。

但是,即使在完成此操作之后,虽然我很确定我的 mod_ssl 正在使用新的 OpenSSL(而不是之前的 0.9.8 版本),但我仍然无法在我的 Apache 配置中使用 SSLProtocol TLSv1.2 .我绝不是这方面的专家,但通过快速浏览mod_ssl 的源代码,我认为它可能需要更改代码才能识别其他协议/版本,如 TLSv1.2(例如,仅ssl_private.h 中的选项列出 SSLv2、SSLv3 和 TLSv1)。

因此,如果您确实需要 TLSv1.2,并且卡在旧版本的 Ubuntu 上,那么可能值得考虑看看是否可以从源代码构建更新版本的 Apache(即旨在支持更新的OpenSSL 版本)。

【讨论】:

    【解决方案2】:
    SSLProtocol TLSv1.2
    

    这应该就是你所需要的。

    【讨论】:

    • 感谢您的回复,我仍然看到与SSLProtocol TLSv1.2 相同的错误
    • 我的 httpd.conf 中有以下几行: SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:!NULL:RC4+RSA:+HIGH:+MEDIUM SSLProtocol TLSv1.2
    猜你喜欢
    • 2015-12-22
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 2019-04-07
    • 2016-05-03
    相关资源
    最近更新 更多