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で実施する手順で証明書の作成からOpen SSLを使ったPFX形式への変換までできました。作業内容をメモとして記しておきます。
Lets Encryptを使ってSSL証明書発行
最初に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 – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – 作成されたメッセージが表示されます
|
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:パスワード pfx形式の証明書が作成されたメッセージが表示されます |
最後にできた証明書ファイルを/home配下にファイル移動し、FTPS等でサーバからダウンロードすれば作業完了です。
念のため/etc/letsencrypt/live配下やサーバ上の証明書は削除しておきましょう。
Web Appsの再起動等を実施するとcertbotのパッケージがなくなりますので、インストールから再度実施する必要があります。
App ServiceでのSSL証明書設定についてはこちら。
Azure Key Vaultの証明書期限切れ前のメール通知についてはこちら。