在我的MacBook Pro中,我使用了带有OpenSSL 1.0.2d
的Apache 2.4.16。
我正在尝试使用SSL配置它,它也应该使用TLS 1.2。
所以我创建了一个自签名证书:
openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt
我写了httpd-ssl.conf
文件,如下所示:
###############################
######## Enable SSL ###########
<IfModule ssl_module>
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLPassPhraseDialog builtin
#SSLSessionCache shmcb:/Applications/AMPPS/apache/logs/ssl_gcache_data(512000)
SSLSessionCacheTimeout 300
Mutex default
</IfModule>
###############################
#### Localhost SSL Entries ####
<IfModule ssl_module>
<VirtualHost *:443>
DocumentRoot "/Users/lory/Sites"
ServerName localhost
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCertificateFile "/Users/lory/Sites/localhost.crt"
SSLCertificateKeyFile "/Users/lory/Sites/localhost.key"
</VirtualHost>
如果我执行sudo apachectl start
则可行。无论如何,我试试终端:
openssl s_client -connect localhost:443 -tls1_2
然后这就是我得到的:
CONNECTED(00000003)
140735258165328:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:362:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 7 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1451408861
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
我从中推断出事情并不顺利。
事实上,如果我在phpinfo();
输出中检查,我会看到:
Apache / 2.4.16(Unix)PHP / 5.5.30使用版本的OpenSSL / 0.9.8zg
ssl,sslv3,sslv2
等等。我不知道为什么,我以为我已经禁用了它们。 我该如何解决?
更新
特别感谢用户 Myles 发出信号:
截至2016年7月21日,有一个包含OpenSSL 1.0.2的MAMP PRO 4的预发布版,在此处获得预发布版本:
答案 0 :(得分:0)
从终端做which openssl
。我想你会发现它不是/ usr / bin / openssl。您正在运行通过HomeBrew或MacPorts编译或安装的openssl。 OS X附带的内置Apache无法使用该openssl。它会使用/ usr / bin中的那个,这就是phpinfo()
报告0.9.8zg的原因。
尝试/usr/bin/openssl version
,您会看到相同的0.9.8zg。
除了编译自己的Apache或使用HomeBrew或MacPorts之外,我认为你不能使用更现代的openssl。