目次
前提条件
- Ubuntu22.04
- Nginxインストール済み
- ドメイン取得済み
- ネームサーバー
- NSレコードにCloudflareを登録済み
方法
パッケージ更新
$ sudo apt update
$ sudo apt upgrade
snapd
インストールをしていない場合
$ sudo apt install snapd
インストールをしている場合
$ sudo snap install core
$ sudo snap refresh core
Certbotのインストール
ここからCertbotをインストールする。
過去にsnapd以外(aptやdnfなど)からインストールした場合は、削除しなればならない
以降は、削除した前提で書く。
$ sudo snap install --classic certbot
シンボリックリンクの作成
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbotのsnapパッケージの設定を変更する
$ sudo snap set certbot trust-plugin-with-root=ok
DNSプラグインをインストールする。
ここのDNSプラグインはCloudflareを使用する。
$ sudo snap install certbot-dns-cloudflare
CloudflareのAPI トークン発行
- API トークンに移動
- トークンを作成する
- カスタム トークンを作成する
- トークン名は、適当に命名
- アクセス許可
- ゾーン
- DNS
- 編集
- ゾーン リソース
- 包含
- 特定のゾーン
- 指定のドメインを選択する。
- 発行する。
トークンの保管場所と記述
フォルダ作成
$ mkdir -p ~/.secrets/certbot/
ファイル作成
$ nano ~/.secrets/certbot/cloudflare.ini
~/.secrets/certbot/cloudflare.iniに以下の内容を書く
Cloudflareで登録済みのトークンのみ書き換えること
dns_cloudflare_api_token = Cloudflareで登録済みのトークン
権限変更
$ chmod 700 ~/.secrets/
$ chmod 700 ~/.secrets/certbot/
$ chmod 600 ~/.secrets/certbot/cloudflare.ini
Certbotを用いてワイルド証明書を取得する
ドメイン名を書き換える
以下のコマンドを実行すると対話式で質問されるので答える。
$ sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
--dns-cloudflare-propagation-seconds 60 \
-d ドメイン名 \
-d *.ドメイン名
以下のCertificate is saved atとKey is saved atの場所は必ずメモすること。
This certificate expires onの日付も覚えておくことを強くお勧めする
.
.
.
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/ドメイン名/fullchain.pem
Key is saved at: /etc/letsencrypt/live/ドメイン名/privkey.pem This certificate expires on 2023-12-01.
Nginxのコンフィグに証明書を書く
コンフィグを開いて適当に書く。
書く内容は各自変わるはずである。
但し、コンフィグの場所や名前は変わる恐れがあるので事前に確認すること。
$ sudo nano /etc/nginx/conf.d/default.conf
server {
listen 443 ssl;
server_name ドメイン名;
ssl_certificate /etc/letsencrypt/live/ドメイン名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ドメイン名/privkey.pem;
...
}
書き終えたら次のコマンドで構成ファイルをテストする
$ sudo nginx -t