Ssl

當證書與其頒發者捆綁在一起時,Apache 不接受證書的密鑰

  • October 24, 2016

我正在為 Intranet 設置證書頒發機構。有一個根證書將安裝在所有網路機器上,一個由根簽名的中間證書,以及一個由中間簽名的 http 伺服器證書。

我需要捆綁 http 和中間證書,以便它們由 root 驗證

#> cat intermediate.crt server.crt > both.crt
#> openssl verify -CAfile root.crt both.crt
OK

但是,我不能將both.crtandserver.private.key用於內部網站,因為當 apache 啟動時:

Certificate and private key mysite.com:443:0 from /www/both.crt and /www/server.private.key do not match

這是因為intermediate.crt是 中的第一個條目both.crt。如果我切換順序,server.crt然後intermediate.crtapache 啟動但both.crt不會針對root.crt.

要求是root.crt永久安裝,但server.crt可能intermediate.crt會發生變化,需要由 apache 臨時提供。如何建構 apache 接受的證書包?

將伺服器證書作為SSLCertificateFile指令的參數,並將包含所有從屬 CA(不包括根 CA)的文件作為SSLCertificateChainFile. 最後,您的伺服器證書的私鑰作為參數SSLCertificateKeyFile

 SSLCertificateFile /etc/pki/tls/certs/server.pem
 SSLCertificateChainFile /etc/pki/tls/certs/bundle.pem
 SSLCertificateKeyFile /etc/pki/tls/private/server.key

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