Apache-2.2
用於身份驗證的商業 SSL 證書和自簽名證書
我有一個執行商業 (rapidssl) 簽名證書的 apache 2 主機,我需要生成客戶端證書以進行身份驗證。
我創建了一個 CA(根據http://www.cafesoft.com/products/cams/ps/docs30/admin/ConfiguringApache2ForSSLTLSMutualAuthentication.html)並相應地修改了我的 apache 配置文件。
<VirtualHost *:443> Servername SITEtest.XXX.com DocumentRoot /SITE/html CustomLog /SITE/html.log vhost_combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/comercialcert.cer SSLCertificateChainFile /etc/apache2/ssl/comercialcert.int SSLCertificateKeyFile /etc/apache2/ssl/comercialcert.key <Directory /SITE> AllowOverride All SSLRequireSSL SSLCACertificateFile /etc/apache2/ssl/selfsignedcaCA.crt SSLVerifyClient require SSLVerifyDepth 1 SSLOptions +StrictRequire +StdEnvVars +ExportCertData +FakeBasicAuth </Directory> </VirtualHost>
我將使用相同 CA 生成的 pkcs12 文件導入瀏覽器。每次我嘗試訪問時都會收到錯誤消息“重新協商握手失敗:客戶端不接受!?” 在 apache 錯誤日誌上。
如果我在 SSLCertificateFile 中使用我的 CA 生成的證書,一切正常,但由於瀏覽器將 Web 伺服器證書辨識為自簽名證書,因此無法正常工作。
更多細節:
Apache/2.2.9 (Debian Lenny) mod_ssl/2.2.9 OpenSSL/0.9.8g
您可能正在使用已將 tis 重新協商解決方法反向移植到其中的 apache 發行版。快速嘗試的一件事是添加
SSLInsecureRenegotiation off
指令。如果這不起作用,請將您的SSLVerifyClient
指令更改為Optional
.這會將伺服器打開到該目錄位置的 TLS Renegotiation 漏洞,但在 Debian 更新其發行版(或者您自定義編譯自己的發行版)之前,您無能為力。