SSL 証明書ファイルがあります:
- ルート2023.crt
- t1.crt
- t1.pem
- t1.pk8
私のApacheでは、SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFileなどにどのファイルを使用するかをどのように判断すればよいでしょうか。
000-default.conf:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/t1.crt
SSLCertificateKeyFile /etc/ssl/t1.pem
SSLCertificateKeyFile /etc/ssl/t1.pk8
SSLCertificateChainFile /etc/ssl/Root2023.crt
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
この設定を試してみましたが、うまくいきませんでした
アップデート:
openssl x509 -in t1.pem -text -noout
openssl x509 -in t1.crt -text -noout
has similar output like this:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 508... (0x468dc...8)
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN = rcii
Validity
Not Before: Feb 14 07:34:00 2023 GMT
Not After : Feb 14 07:34:00 2026 GMT
Subject: C = IR, ST = TEH, L = TEH, CN = 172.....
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (4096 bit)
Modulus:
00:c4:.....
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment, Data Encipherment, Key Agreement
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Subject Alternative Name:
IP Address:172.....
Netscape Comment:
xca certificate
Signature Algorithm: sha256WithRSAEncryption
Signature Value:
34:bd:9
t1.pk8にはパスフレーズがある
openssl rsa -in t1.pk8 -text -noout
出力:
Private-Key: (4096 bit, 2 primes)
modulus:
00:c4:58:f7:e8:bf:ad:f1:f9:aa:33:e7:3c:b3:48:
publicExponent: 65537 (0x10001)
privateExponent:
65:a0:6b:08:84:15:c3:55:e7:3b:a0:27:31:e0:74:
prime1:
00:f2:e1:d3:4e:3f:2e:b3:69:60:cd:8c:8c:78:91:
prime2:
00:ce:f3:bd:36:44:6e:bd:ae:65:43:62:59:8a:ec:
af:03
exponent1:
00:e1:cd:10:a5:ae:17:bc:b4:3b:4a:dd:5f:ba:b7:
63:0d:e2:0b:18:93:35:8b:3c:df:4b:7e:d5:63:84:
75
exponent2:
1f:b9:21:21:f6:6f:7b:48:06:61:c3:eb:b1:ed:fc:
7d
coefficient:
37:ff:02:03:bf:37:c0:7f:6f:f8:a6:b1:51:9b:b3:
fd:cf:fd:49:e3:c5:fb:6d:47:79:a0:0e:2d:99:50:
eb
答え1
のモジュール各パラメータのドキュメントには何が期待されるかが書かれており、多かれ少なかれあなたの質問に回答しています。
秘密鍵
説明: サーバーのPEMエンコードされた秘密鍵ファイル
このディレクティブは、サーバーの PEM エンコードされた秘密鍵ファイル、または構成された暗号化トークンを介したキー ID を指します。含まれている秘密鍵が暗号化されている場合、起動時にパスフレーズ ダイアログが強制的に表示されます。
にはt1.pk8
ここで必要な情報が含まれていますが、Apache を再起動するたびにパスワードの入力を求められないように、パスワードを削除する必要があるかもしれません。
openssl rsa -in /etc/ssl/t1.pk8 -out /etc/ssl/t1.key
結果のファイルは で始まるはずです-----BEGIN PRIVATE KEY----
。
キー ファイルはパスワードで保護されなくなったため、ファイル システムのアクセス許可で保護する必要があります。
chown root:root /etc/ssl/t1.key
chmod 600 /etc/ssl/t1.key
証明書チェーン
SSLCertificateChainFile
バージョン 2.4.8 では、SSLCertificateFile
サーバー証明書ファイルから中間 CA 証明書も読み込むように拡張されたため、廃止されました。
それは自明のはずです。このディレクティブを構成から完全に削除してください。
SSLCertificateFile
指令説明: サーバーのPEMエンコードされたX.509証明書データファイルまたはトークン識別子
このディレクティブは、PEM 形式の証明書データ、または構成された暗号化トークンを介した証明書識別子を含むファイルを指します。PEM ファイルを使用する場合、少なくとも、ファイルにエンド エンティティ (リーフ) 証明書が含まれている必要があります。 - -
ファイルには、リーフからルートの順に並べられた中間 CA 証明書も含まれる場合があります。
t1.crt
が によって直接署名されておりRoot2023.crt
、 がRoot2023.crt
クライアントの CA ストアに存在する場合は、t1.crt
そのまま使用できます。
必要な場合は中級証明書が複数ある場合は、リーフからルートまですべてを含む結合ファイルを作成する必要があります。Root2023.crt
中間証明書を含むファイルがあり、両方ともすでに PEM 形式である場合は、次のように結合できます。
cat /etc/ssl/t1.crt /etc/ssl/Root2023.crt > /etc/ssl/fullchain.pem
結果のファイルは次のように構造化されるはずです。
-----BEGIN CERTIFICATE-----
Base 64 encoded contents of the leaf certificate.
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
Base 64 encoded contents of an intermediate certificate.
-----END CERTIFICATE-----
必要な量の中間体(およびオプションで CA 証明書)が続きます。
構成
さて、これらの手順がニーズに適しており、これらの手順に従った場合、構成は次のようになります。
SSLEngine on
SSLCertificateFile /etc/ssl/fullchain.pem
SSLCertificateKeyFile /etc/ssl/t1.key