Acmebot で Azure Key Vault に保管された証明書を apache2 で利用する
TL;DR
- しばやんさんの acmebot を利用して Azure Key Vault に証明書を作成する
- 作成された証明書を apache2 で利用できるように加工する
- Mozilla SSL Configuration Generator で config を作成して利用する
はじめに
よたんさんの Azure Application GatewayのSSL証明書にLet's Encryptを使う を元にしばやんさんの Acmebot を動かし、Azure Key Vault に証明書を保存しておきます。
作成した証明書をダウンロードできるのは cert か pfx
Azure、というか Microsoft 界隈では pfx (pkcs12) 形式がよく利用されており、このままでは apache2 利用できません。
そのため、変換してあげる必要があります。
証明書をダウンロードする
証明書のダウンロードは難しくなく、Azure Portal から CER 形式でダウンロードします。
ただ、なぜかヘッダとフッタが欠けているので、ファイルの先頭に -----BEGIN CERTIFICATE-----
を、最後に -----END CERTIFICATE-----
を追加します。
デコードされた証明書が問題ないかどうかは以下のコマンドで確認できます。
Subject というところを確認して、該当のドメインであることを確認します。
openssl x509 -text -noout -in certificate.crt
秘密鍵を抽出する
次に、秘密鍵を抽出するために、Azure Portal から PFX 形式でダウンロードします。
これは apache2 では利用できないので、秘密鍵を取り出します。
openssl pkcs12 -in cert.pfx -nocerts -nodes -out key.pem
秘密鍵の確認は以下のコマンドで行います。
openssl rsa -text -noout -in key.pem
証明書と秘密鍵の組合せを確認する
証明書と秘密鍵の組合せが正しいかどうかは以下のコマンドで確認できます。
このふたつが合致していれば問題ないと考えられます。
openssl x509 -noout -modulus -in certificate.crt | openssl md5
openssl rsa -noout -modulus -in key.pem | openssl md5
Mozilla SSL Configuration Generator で config を作成する
ここはおまけですが、Mozlla が提供している SSL Configuration Generator で設定を作成すると簡単です。
SSLCertificateFile の部分には先程作成した certificate.crt を、SSLCertificateKeyFile の部分には先程作成した key.pem を指定します。
path は適当に /etc/apache2/ssl
とかにしておきます。
参考
- Azure Application GatewayのSSL証明書にLet's Encryptを使う
- OpenSSL Essentials: Working with SSL Certificates, Private Keys and CSRs
- Mozilla SSL Configuration Generator
Discussion