Azure Web Appsの拡張機能を使わずにLet’s Encryptで証明書を発行してOpenSSLでPFX形式へ変換してみた

 

Let’s EncryptのSSL証明書作成をWeb Appsで試してみようとして調べてみた所、Web Appsの拡張機能を使う方法が多く紹介されていました。

しかし、Web AppsをLinux+PHPの構成で試していたのですが、Web Appsの拡張機能が有効になってませんでした。

どうしようか?と途方に暮れていたのですが、よく考えたらWeb AppsってUbuntuだから普通にできるのでは?と気づき試してみました。

結果、普通にUbuntuで実施する手順で証明書の作成できました。作業内容をメモとして記しておきます。

Azure Key Vaultの証明書期限切れ前のメール通知についてはこちらで試しております。

Azure Key Vaultで証明書期限切れ前にMail通知する

————————-

1 .Lets Encryptの証明書発行を行う

最初にAzure Portal上で自分のWeb AppsへSSHで接続します。

サーバ上でLets Encrypt証明書発行の為に、実施する手順は以下の通りです。

    • aptアップデート
    • certbotのインストール
    • certbotコマンドで証明書の発行

なお、最初にapt updateしてからでないとcertbotインストール時にエラーになりました。なおオプションを使わずcertbot certonlyコマンドでも同様の事が可能です。

#updateを実施する

[root@ホスト名 tmp]# apt -y update

#certbotをインストールします

[root@ホスト名 tmp]# apt -y install certbot

#証明書を発行する(ドメインは自分のサイトに合わせて設定します。)

[root@ホスト名 tmp]# certbot certonly –webroot -w /home/site/wwwroot -d ドメイン名

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Enter email address (used for urgent renewal and security notices) (Enter ‘c’ to
cancel):メールアドレスを入力

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
(A)gree/(C)ancel: A    (承諾の確認です。Aを選択します)

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let’s Encrypt project and the non-profit
organization that develops Certbot? We’d like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
(Y)es/(N)o: N    (案内メール送信の確認です。必要ならYを選択します)

作成されたメッセージが表示されます

 

Let’s Encryptで発行された証明書は/etc/letsencrypt/live/ドメイン名/ 配下に生成されます。

.OpenSSLを使ってpem形式からpfx形式へ変換する

Azure 上では独自ドメインの証明書をpfx形式で扱います。そこでopensslコマンドで変換を行います。

opensslはデフォルトで入っていた為、インストールの必要はありませんでした。

#証明書が作成されているディレクトリに移動します

[root@ホスト名 tmp]# cd /etc/letsencrypt/live/ドメイン名/

#opensslコマンドでpem形式からpfx形式に変換する

[root@ホスト名 tmp]# openssl pkcs12 -export -inkey privkey.pem -in cert.pem -out 証明書名.pfx

Enter Export Password:パスワード
Verifying – Enter Export Password:パスワード

pfx形式の証明書が作成されたメッセージが表示されます

最後にできた証明書ファイルを/home配下にファイル移動し、FTPS等でサーバからダウンロードすれば作業完了です。

念のため/etc/letsencrypt/live配下やサーバ上の証明書は削除しておきましょう。

Web Appsの再起動等を実施するとcertbotのパッケージがなくなりますので、インストールから再度実施する必要があります。

App ServiceでのSSL証明書設定についてはこちらで試しております。

Azure App ServiceでカスタムドメインとSSL証明書を使う