在apache 2.2.8中仅启用TLSv1.2

时间:2018-02-14 21:27:49

标签: ubuntu openssl apache2

根据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设置,所以我不确定其他配置是否有所改变,我是否需要在为OpenSSL 1.1.1-pre1安装TLSv1.2后设置其他任何内容?或者是否需要进行任何其他配置更改才能使TLSv1.2在apache 2.2.8上工作?

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。我设法在Build-Scripts package via GitHub的帮助下安装了OpenSSL 1.0.2o,然后从Apache 2.2.8源代码重新构建了mod_ssl(在{{3 }}进行编译)。

但是,即使这样做了,尽管我可以肯定我的mod_ssl使用的是新的OpenSSL(而不是先前的0.9.8版本),但是我仍然不能使用SSLProtocol TLSv1.2在我的Apache配置中。我绝不是专家,但是从mod_ssl的源代码快速浏览起,我认为可能需要更改代码才能识别其他协议/版本,例如TLSv1.2(例如{{ 1}}仅列出SSLv2,SSLv3和TLSv1)。

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

答案 1 :(得分:-1)

SSLProtocol TLSv1.2

这应该是你所需要的一切。