如何轉換和使用 PKCS#12/PFX 證書 Apache

當我們有多個服務器並且需要使用相同的 SSL 證書時,例如在負載平衡器環境中或使用通配符 SSL 證書,您將需要在服務器之間傳輸證書。 通常,如果在 Linux 服務器或 Windows 服務器等同類服務器之間進行服務器到服務器 SSL 傳輸將很容易。

但是當涉及到 Windows 到 Linux 服務器時,這個過程變得有點困難。 在這種情況下,我們需要從 Windows 服務器導出 SSL 證書並存儲到 .pfx 文件。 之後,我們需要將此 .pfx (PKCS#12/) 文件複製到 Linux 服務器並將該文件轉換為 Apache- 兼容的文件格式,如個人證書、CA 包和私鑰文件並使用它。

當您切換託管公司時,這也可能是必要的。 我將通過本文中的分步說明解釋確切過程,了解如何在運行的 Linux 服務器上成功使用來自 Windows 服務器的 .pfx 證書 Apache.

.pfx 和 .crt 文件的區別

之前,從我們的轉換過程開始,讓我快速描述一下 .pfx 和 .crt 文件之間的區別。 基本上,證書(.crt 文件)是公鑰的容器。 它包括公鑰、服務器名稱、有關服務器的一些額外信息以及由證書頒發機構 (CA) 計算的簽名。 在 SSL 握手時,服務器將其公鑰發送給客戶端,客戶端實際上包含其證書,以及其他一些證書鏈。

另一方面,.pfx 文件是類似於包的 PKCS#12 存檔,其中可以包含許多具有可選密碼保護的對象。 通常,PKCS#12 存檔包含一個證書(可能帶有其分類的 CA 證書)及其相應的私鑰。

現在讓我們開始我們的轉換過程。

第 1 步:將 pfx 證書從 Windows 服務器傳輸到我們的 Linux 服務器

首先,我已將我的證書從我的域 puebe.com 的 Windows 服務器導出為 .pfx 證書。 我已經使用 SCP 將該 pfx 文件從我的本地系統複製到我的 Linux 服務器到文件夾“/transfered_certificates/”。 您可以使用 FTP、SCP、wget 或使用這些方法中的任何一種將 pfx 證書傳輸到您的 Linux 服務器。

# transfered_certificates]# ll
-rw-r--r-- 1 root root 5409 Oct 9 10:02 c667cafbf01ffd7310db952e50eaf2b2.pfx

步驟 2:使用 OpenSSL 轉換 .pfx 文件

我們的下一步是從域 puebe.com 的這個 .pfx 證書中提取我們所需的證書、密鑰和 CA 包。 我們可以使用 OpenSSL 命令從 pfx 文件中提取這些詳細信息。 讓我們看看從這個 pfx 證書中提取所需信息的命令。

從 pfx 文件中提取證書

我們可以使用此命令從 pfx 文件中提取域 puebe.com 的證書詳細信息。

# openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -clcerts -nokeys -out puebe.com.crt
Enter Import Password:
MAC verified OK

這將為我們提供我們的域證書文件,即 puebe.com.crt 具有在 Linux 中支持的兼容格式。

從 pfx 文件中提取密鑰文件

我們可以使用此命令從 pfx 文件中提取域 puebe.com 的關鍵詳細信息。

# openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -nocerts -nodes -out puebe.com.key
Enter Import Password:
MAC verified OK

這將為我們提供我們的域密鑰文件,即 puebe.com.key

從 pfx 文件中提取證書鏈

我們可以使用此命令從 pfx 文件中提取證書詳細信息鏈。

# openssl pkcs12 -in c667cafbf01ffd7310db952e50eaf2b2.pfx -out puebe.com-ca.crt -nodes -nokeys -cacerts
Enter Import Password:
MAC verified OK

這將為我們在文件中為我們的域 puebe.com 提供我們的證書鏈 puebe.com-ca.crt.

我將這些提取的文件複製到“/etc/pki/tls/certs/”下的 cert 文件夾中。 如果需要,您可以執行此操作,但如果沒有,則可以直接在 Apache 您已將這些文件提取到的配置。

[root@li1005-45 certs]# ll puebe.com*
-rw-r--r-- 1 root root 3689 Oct 9 10:10 puebe.com-ca.crt
-rw-r--r-- 1 root root 1954 Oct 9 10:06 puebe.com.crt
-rw-r--r-- 1 root root 1828 Oct 9 10:07 puebe.com.key

第 3 步:將域 SSL 證書分配給 Apache

轉換 .pfx 文件後,您需要將新創建的文件複製到 Apache 服務器並編輯您的 Apache 配置文件來使用它們。 我在 /etc/httpd/conf.d/ 文件夾下為我的域創建了一個虛擬主機以啟用 SSL 並根據需要包含這些提取的文件。 請在下面查看我的虛擬主機詳細信息:

[root@li1005-45 conf.d]# cat puebe_ssl.conf
<VirtualHost puebe.com:443>
DocumentRoot "/var/www/html/puebe.com/public_html/"
ServerName www.puebe.com:443
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA

SSLCertificateFile /etc/pki/tls/certs/puebe.com.crt
SSLCertificateKeyFile /etc/pki/tls/certs/puebe.com.key
SSLCertificateChainFile /etc/pki/tls/certs/puebe.com-ca.crt

#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<Files ~ ".(cgi|shtml|phtml|php3?)$">
 SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
 SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" 
nokeepalive ssl-unclean-shutdown 
downgrade-1.0 force-response-1.0

# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log 
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"

</VirtualHost>

您可以修改文件和路徑的名稱以匹配您的證書文件:
SSLCertificateFile 應該是您域名的主要證書文件。
SSLCertificateKeyFile 應該是解壓出來的密鑰文件。
SSLCertificateChainFile 應該是中間證書鏈文件。

只需確保運行配置測試並重新啟動 Apache 完成此操作後提供服務。

# apachectl configtest
Syntax OK
# service httpd restart

現在,您可以使用任何可用的 SSL 檢查工具來確認您的域 SSL 證書。 或者您可以瀏覽網址 >>https://hwwclr.com/images/8/pfx-certificate-convert.jpg"},{"@type":"Article","@id":"https://hwwclr.com/archives/1776#article","url":"https://hwwclr.com/archives/1776","headline":"如何轉換和使用 PKCS#12/PFX 證書 Apache","datePublished":"2021-12-22T19:44:49+00:00","dateModified":"2021-12-22T19:44:49+00:00","wordCount":386,"keywords":["Apache","Linux","Windows"],"articleSection":["archives"],"isPartOf":{"@id":"https://hwwclr.com/archives/1776#webpage"},"mainEntityOfPage":{"@id":"https://hwwclr.com/archives/1776#webpage"},"image":{"@id":"https://hwwclr.com/archives/1776#thumbnail"},"publisher":{"@id":"https://hwwclr.com/#organization"},"author":{"@id":"https://hwwclr.com/archives/1776#author"}},{"@type":"Person","@id":"https://hwwclr.com/archives/1776#author","url":"https://hwwclr.com/archives/author/eksrr/","name":"eksrr","image":{"@id":"https://hwwclr.com/archives/1776#author_image"}},{"@type":"ImageObject","@id":"https://hwwclr.com/archives/1776#author_image","url":"https://secure.gravatar.com/avatar/318b825ceed67a90912d6ba14fe24186?s=96&d=mm&r=g","width":96,"height":96,"caption":"eksrr"}]}