Ssl

SSL:鏈問題!>> WINDOWS 2012 R2 上的 GoDaddy + Apache 2.4.23

  • March 16, 2017

大家下午好

我完全被困住了。不知道如何跟隨,以及我在做什麼錯了。我希望你能幫助我解決這個問題,因為我已經閱讀了很多內容來解決這個問題,但沒有成功……

我有:

  • Windows 2012 R2 伺服器
  • Apache 2.4.23 安裝在上面,MOD_JK 將所有請求代理傳遞到另一台機器上的 Tomcat 伺服器。

我在 GoDaddy 上購買了 EXTENDED 證書,因此我可以在 URL 欄上顯示“綠色徽章”。

現在,我已經從 GoDaddy 下載了證書,在 de ZIP 中,有一個專有證書和一個 G2+G1+ROOT 捆綁包。所以里面有2個文件。

將它們放在一個文件夾中,並在 443 VHOST 中正確指定,正如您接下來將看到的那樣,但是我在 Internet 上進行的每個 SSL 測試(SSLLabs、DigiCert …),它在連結過程中都失敗了

網站:cliente.merchbanc.es

https://www.ssllabs.com/ssltest/analyze.html?d=cliente.merchbanc.es&hideResults=on

https://www.sslshopper.com/ssl-checker.html#hostname=cliente.merchbanc.es

不知道我做錯了什麼……我已經讓 HTTPD.CONF 準備好了(當然,沒有註釋正確和需要的模組),但沒有任何與 VHOSTS 和 SSL 相關的內容。然後,在額外的 conf 文件 VHOST 上,我添加了所有 VHOST 的東西 + SSL(所以我沒有使用 SSL conf 文件。它已被註釋。所有內容都在 VHOSTS conf 文件中。)。

它看起來像這樣:

##################################################################################################################
# VHOSTS HTTP

# redirect all HTTP to HTTPS (optional)
<VirtualHost *:80>

   ServerAlias *
   RewriteEngine On
   RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [redirect=301]

</VirtualHost>

##################################################################################################################
# VHOSTS HTTPS

Listen 443

# modern configuration, tweak to your needs
SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
SSLProxyProtocol        all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite          ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
SSLProxyCipherSuite     ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
SSLHonorCipherOrder     on
SSLCompression          off
SSLSessionTickets       off

SSLPassPhraseDialog     builtin

SSLSessionCache        "shmcb:c:/lala/lele/ssl_scache(512000)"
SSLSessionCacheTimeout  300

# OCSP Stapling, only in httpd 2.3.3 and later
SSLUseStapling                      on
SSLStaplingResponderTimeout         5
SSLStaplingReturnResponderErrors    off
SSLStaplingCache                    "shmcb:c:/lala/lele/ocsp(128000)"

<VirtualHost *:443>

   SSLEngine on
   SSLCertificateFile "blah/blahblah/cliente.merchbanc.es/123412341234.crt"
   SSLCertificateKeyFile "blah/blahblah/cliente.merchbanc.es/123412341324.key"
   #SSLCertificateChainFile "blah/blahblah/cliente.merchbanc.es/gd_bundle-g2-g1.crt"
   SSLCACertificatePath "blah/blahblah/cliente.merchbanc.es/GoDaddy_G2"

   # Uncomment the following directive when using client certificate authentication
   #SSLCACertificateFile    /path/to/ca_certs_for_client_authentication

   # HSTS (mod_headers is required) (15768000 seconds = 6 months)
   Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"

   ...
   ... follows with the ProxyPassing part, but not the case now.
   ...

</VirtualHost>

按照 GoDaddy 安裝說明網頁,我已將SSLCertificateChainFile指令更改為SSLCACertificatePath指令,因為我在 2.4.23 版本上使用 Apache。但這並不能解決任何問題。

之後,我決定從這裡下載所有G2 證書: https ://certs.godaddy.com/repository

並將它們全部放在 SSLCACertificatePath 路徑上指定的文件夾中:“blah/blahblah/cliente.merchbanc.es/GoDaddy_G2”。但也不起作用。

最後,當我在 Windows 中時,我決定去證書,在證書之後,點兩下 em,然後安裝在伺服器上,現在將它們放在*“Internet 選項 > 內容 > 證書”*中,所有這些都分佈在各種現有選項卡。和常見的一樣,根本沒有改變。

當然,每次都重新啟動 Apache,甚至在 Windows 上安裝證書之後,也會重新啟動伺服器本身。

所以現在怎麼辦?希望你能幫助我,拜託。

謝謝和親切的問候。

標記。

您需要取消註釋證書鏈文件的行

#SSLCertificateChainFile "blah/blahblah/cliente.merchbanc.es/gd_bundle-g2-g1.crt"

應該:

SSLCertificateChainFile "blah/blahblah/cliente.merchbanc.es/gd_bundle-g2-g1.crt"

說明(您沒有辨識)是亂碼,或者您誤讀了它們。

2.4.8 以上的變化是您可以並且應該將您的鏈證書放入SSLCertificateFile而不是SSLCertificateChainFile. 如果未在 中提供,所有版本都將使用證書SSLCACertificate{File,Path}來完成您的鏈SSLCertificate{Chain,}File,但SSLCA*如果啟用,證書也將應用於客戶端身份驗證,這可能需要也可能不需要。

但是要使用SSLCACertificatePath(不是...File)每個證書必須在一個單獨的文件中,並且每個文件必須使用其主題的雜湊來命名(或連結,這算作一個名稱) ;在 Unix 上,使用符號連結是正常的(但不是絕對必要的)。

在按照上游約定安裝 OpenSSL 的 Unix 系統上(並非全部都這樣做),有一個腳本在c_rehash某處(儘管可能是一個不在您的正常 PATH 中的位置)執行此操作;如果是這樣,應該有一個手冊頁(有時在像 1ssl 這樣的特殊部分中),它也在 web 上。OpenSSL 1.1.0(僅)在某些系統rehash的命令行執行檔中具有等效功能。openssl由於您可能沒有這些,您可以在每個證書文件上手動執行openssl x509 -hash(或等效但更準確)並使用這些加號來重命名或複製文件。但是(not ) or更容易。-subject_hash``.0``SSLCACertificateFile``...Path``SSLCertificate{Chain,}File

(添加)特別是,使用SSLCACertificateFile您只需將所有需要的 CA 證書和可選的不需要的 CA 證書連接到一個文件中。由於 PEM 格式數據在設計上都是可列印/可見的,因此您可以通過在記事本等純文字編輯器中剪切和粘貼來完成此操作,此外還可以使用catUnix 或copy a+b+cWindows 中的特定工具或>>outfile附加到任何一個中。

PS:Apache 不使用 Windows 證書儲存,所以在 Windows 證書儲存中安裝東西絕對不會對其產生任何影響。

PPS:如果您在 Windows 上沒有 OpenSSL 命令行,在http://www.slproweb.com/products/Win32OpenSSL.html有一個很好的預建構包

引用自:https://serverfault.com/questions/838235