根据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
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上工作?
答案 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
这应该是你所需要的一切。