SSLを使用してApache 2サーバーをセットアップする必要があります。
* .keyファイルがありますが、証明書の発行者から* .cerファイルが提供されています。
ネットに関するすべてのドキュメントでは、それらは* .crt証明書用です。
教えてください、*。cerは* .crtと同じです。
そうでない場合、CERをCRT形式に変換するにはどうすればよいですか?
暗号証明書のファイル拡張子は、あなたが期待するほど実際には標準化されていません。 Windowsは、デフォルトで、.crt
ファイルをダブルクリックすると、証明書をWindowsルート証明書ストアにインポートする要求として処理しますが、.cer
ファイルを証明書を表示するだけの要求として処理します。その意味で、少なくとも、Windowsには、各種類のファイルをダブルクリックしたときに何が起こるかについて、いくつかの固有の異なる意味があるという意味で異なります。
しかし、Windowsがダブルクリックしたときにそれらを処理する方法は、両者の唯一の違いです。両方の拡張機能は、単に公開証明書が含まれていることを表しています。ファイルの名前を変更したり、私が見たシステムまたは構成ファイルで他のファイルの代わりに使用したりできます。また、Windows以外のプラットフォーム(およびWindows上でも)では、ユーザーが使用する拡張子について特に注意を払わず、ファイルの内容が正しい限り両者の間に違いがないため、両者を同じように扱います。
混乱を招くのは、証明書データをファイルに保存する2つの標準的な方法があることです。1つは「バイナリ」X.509エンコーディングで、もう1つは通常「-----BEGIN CERTIFICATE-----
」で始まる「テキスト」base64エンコーディングです。 「。これらは同じデータを異なる方法でエンコードします。ほとんどのシステムは両方の形式を受け入れますが、必要に応じてopensslまたは他のツールを使用して一方を他方に変換できます。ただし、証明書ファイル内のエンコーディングは、誰かがファイルに付けた拡張子とはまったく無関係です。
特定のプログラムで特定の種類のファイルを使用するのが難しいという特定の質問がある場合は、どの種類のファイルがあり、アプリケーションが何を期待しているのかを説明する別の質問を投稿することをお勧めします。
ドキュメントによると mod_ssl :
SSLCertificateFile:
Name: SSLCertificateFile
Description: Server PEM-encoded X.509 certificate file
証明書ファイルは、PEMエンコードされたX.509証明書ファイルである必要があります。
openssl x509 -inform DER -in certificate.cer -out certificate.pem
基本的に、DERとBase64の2つのCER証明書エンコードタイプがあります。タイプDERが証明書の読み込みエラー(asn1エンコーディングルーチン)を返す場合、PEMを試してみてください。
openssl x509 -inform DER -in certificate.cer -out certificate.crt
openssl x509 -inform PEM -in certificate.cer -out certificate.crt
CERはバイナリ形式のX.509証明書、DERエンコードされています。
CRTは、テキスト(base-64)エンコーディングでカプセル化されたバイナリX.509証明書です。
同じエンコーディングではありません。
PKCS#7でエンコードされた証明書データを含む.cerファイルがあり、それをPEMでエンコードされた証明書データ(通常は.crtまたは.pemファイル)に変換するとします。たとえば、PKCS#7でエンコードされたデータを含む.cerファイルは次のようになります。
【.____。】----- .____ PKCS7 ----- MIIW4gYJKoZIhvcNAQcCoIIW0zCCFs8CAQExADALBgkqhkiG9w0BBwGggha1MIIH ... [.____。】POI9n9cd2cNgQ4xYDiKWL2KjLB + 6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G + bKhADEAを[BEGIN。 ] ----- END PKCS7 -----
PEM証明書データは次のようになります。
[。証明書の終了-----
.cerファイル(PKCS#7データを含む)を、予想されるPEMデータ(上記の例ではBEGIN CERTIFICATE
ブロック)に変換するOpenSSLコマンドがあります。 certfile.cerを呼び出すファイルでこのコマンドを実行すると、PKCS#7データをPEM形式に強制できます。
openssl pkcs7 -text -in certfile.cer -print_certs -outform PEM -out certfile.pem
.cerまたは.pemファイルには、1つ以上の証明書(おそらく証明書チェーン全体)が含まれている可能性があることに注意してください。
.cerファイルを.crtファイルに変換する方法(それらは異なる方法でエンコードされています!)の質問に対する答えは次のとおりです。
openssl pkcs7 -print_certs -in certificate.cer -out certificate.crt
Cerファイルがバイナリ形式の場合は、次の方法で変換する必要があります
openssl x509 -inform DER -in YOUR_CERTIFICATE.cer -out YOUR_CERTIFICATE.crt
私はコマンドを使用します:
openssl x509 -inform PEM -in certificate.cer -out certificate.crt
ただし、CERは、DER形式でエンコードされたバイナリ形式のX.509証明書です。 CRTはバイナリ(X.509)証明書で、テキスト(base-64)エンコーディングでカプセル化されています。
そのため、次を使用する必要があります。
openssl x509 -inform DER -in certificate.cer -out certificate.crt
そして、証明書をインポートするには:
CAをdirにコピーします。
/usr/local/share/ca-certificates/
コマンドを使用:
Sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
CAストアを更新します。
Sudo update-ca-certificates
.cerファイルと.crtファイルは、キーストアにインポートする限り、交換可能である必要があります。
.cerファイルの内容を見てください。 -----BEGIN CERTIFICATE-----
行の前と-----END CERTIFICATE-----
行の後を消去します。 BEGIN/END行が残り、Base64でエンコードされたものがそれらの間にあります。
-----BEGIN CERTIFICATE-----
MIIDQTCCAqqgAwIBAgIJALQea21f1bVjMA0GCSqGSIb3DQEBBQUAMIG1MQswCQYD
...
pfDACIDHTrwCk5OefMwArfEkSBo/
-----END CERTIFICATE-----
次に、keytoolを使用してキーファイルにインポートします。
keytool -import -alias myalias -keystore my.keystore -trustcacerts -file mycert.cer