我将Apache更新到了最新版本2.4.37,并将openssl更新到了1.1.1,现在,当客户端进行身份验证时,我只在firefox 63中看到这个错误,但在chrome中没有:
[ssl:error] AH: verify client post handshake, referer: https://******/login
[ssl:error] AH10158: cannot perform post-handshake authentication, referer: https://******/login
[ssl:error]SSL Library Error: error:14268117:SSL routines:SSL_verify_client_post_handshake:extension not received
我用wireshark试图找出问题所在,而apreciate firefox使用的是tls 1.3,而chrome使用的是tls1.2。实际上,如果我将ff中的tls max version设置为tls 1.2,它就可以正常工作。
我希望获得TLS 1.3兼容性,或者,如果还不可能,在我的Apache配置中强制客户端始终使用TLS 1.2,但我没有得到它:(
这是我的apache vhost配置文件:
[...]
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
SSLCertificateChainFile /etc/apache2/ssl/intermediate.crt
SSLCACertificateFile /etc/apache2/ssl/ca.pem
SSLVerifyDepth 3
SSLProtocol TLSv1.2
SSLHonorCipherOrder on
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride All
Order deny,allow
Allow from 10.55.12.0/24
Deny from all
SSLVerifyClient optional
SSLOptions +StdEnvVars +StrictRequire
[...]
有人能帮我吗?
谢谢。
编辑
我找到了解决办法。sslprotocol指令应该在/etc/apache2/mods-enabled/ssl.conf中。