Microsoft Azure Codex CLIでLet's EncryptのSSL証明書を取得してhttpsを設定する方法

前提条件

はじめに

今回は、Microsoft Azure上で稼働しているCodex CLIに、

日本語の指示だけで別のサーバーへLet's EncryptのSSL証明書を取得し、

httpsを設定する手順を検証いたします。

動作環境
ApacheとHTTP(80番)・HTTPS(443番)の設定

Apacheのインストールと80番・443番の開放が完了していることが前提です。

詳細は以下の記事をご参照ください。

DNSの設定

対象サーバーのパブリックIPをドメインのAレコードに登録します。

Let's Encryptの証明書取得にはDNSが正しく設定されている必要があります。

事前に下記の内容を参考にCodex CLIをインストールしてください。

対象サーバーも作成してください。以下の内容を参考にしてください。

certbot SSL証明書を取得 https設定をする

この画面が表示されて指示を入力できない場合は、viで下記の内容を追記しましょう。

(v0.160.0以降から表示されます。)

コマンド説明
$ codexCodex CLIを実行いたします。
 
$ vi ~/.codex/config.toml
[projects."/home/azureuser/azure"]
trust_level = "trusted"
 
下記の画面が表示された場合は、codexをCtrl+cで終了し、
viでconfig.tomlを追記いたします。

AzureはSSH接続が不要です。

az vm run-commandを使うことで、対象サーバーに直接コマンドを実行できます。

1. Codex CLIがインストールされている操作元サーバーで実行してください。

下記のコマンドを実施してください。(一般ユーザーで実施してください。)

certbotのインストールからSSL証明書取得、HTTPS設定までを完了しました。

補足

動作確認

2. ブラウザーでドメイン名を入力して確認いたしましょう。

「保護されていない通信」の警告が表示されず、httpsで正常にアクセスできれば完了です。

Apacheのデフォルトページ「Ubuntu Apache2 Default Page」が表示されれば正常に動作しています。

3. 自動更新タイマーの設定はコマンドでも確認できます。

対象サーバーにSSHでログインし、下記のコマンドを実施してください。

注意事項

まとめ

・Azureでは、SSHを使わずにaz vm run-commandで、対象サーバーにSSL証明書を

取得してhttpsを設定できる。

・事前に、Apacheのインストール、DNS(Aレコード)の設定、NSGの80番・443番の開放が必要。

・HTTPからHTTPSへのリダイレクトと、自動更新タイマーの設定、設定後の確認まで実行してくれる。

・Ubuntuの自動更新タイマーはcertbot.timer。

以上で「Microsoft Azure Codex CLIでLet's EncryptのSSL証明書を取得してhttpsを設定する方法」を完了いたします。

まずはお気軽に

クラウド構築・設定をお任せしませんか?

AWS・Azure・さくら・GCP など7クラウド対応。構築から運用まで承ります。

返信は通常1営業日以内