このあいだConoHa VPSでつくったUbuntu 22.04が動くサーバーに独自ドメイン dev.shikakun.com
でアクセスできるようにしてLet's EncryptでSSL証明書を発行したのだけど、サブドメイン以下のワイルドカード証明書というのはないらしく、サブドメインを用意するたびにSSL証明書を発行しないといけないし、それぞれ3ヶ月ごとに更新しないといけないのはめんどう。そこで、ルートドメインとして新たに shikakun.dev
を取得して、ワイルドカード証明書ひとつで運用できるようにしたい。
これまでのあらすじは以下の記事を参照ください。
ドメインの取得・ネームサーバーの設定
今回はドメインをムームードメインで取得して、ネームサーバーはCloudflareを利用しました。
ムームードメインで取得完了後にDNSを利用しない選択肢を選び、Cloudflareにログインして「サイトを追加」から shikakun.dev
を追加、表示される案内に従ってムームードメインの管理画面でネームサーバーの設定を abby.ns.cloudflare.com
phil.ns.cloudflare.com
へ差し替える。しばらくするとCloudflareから、確認できたよ〜というメールが届いた。
ドメインでアクセスできるようにする
sudo mkdir /var/www/shikakun.dev
sudo chown -R $USER:$USER /var/www/shikakun.dev
sudo vim /etc/apache2/sites-available/shikakun.dev.conf
<VirtualHost *:80>
ServerName shikakun.dev
ServerAdmin webmaster@localhost
DocumentRoot /var/www/shikakun.dev
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
sudo a2ensite shikakun.dev
systemctl reload apache2
これで http://shikakun.dev/
でアクセスできるようになった(なお、 .dev
や .app
のTLDはChromeからアクセスしようとするとhttpsへリダイレクトされるが、まだSSL証明書を発行していないのでアクセスできない。FirefoxなどChrome以外のブラウザで確認しました)。
certbotでLet's EncryptのSSL証明書を発行し、apache2の設定ファイルを書き換える。
sudo certbot certonly --webroot --webroot-path /var/www/shikakun.dev -d shikakun.dev -m {メールアドレス}
sudo vim /etc/apache2/sites-available/shikakun.dev.conf
<VirtualHost *:443>
ServerName shikakun.dev
ServerAdmin webmaster@localhost
DocumentRoot /var/www/shikakun.dev
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/shikakun.dev/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/shikakun.dev/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/shikakun.dev/chain.pem
</VirtualHost>
sudo systemctl reload apache2
これで https://shikakun.dev/
でアクセスできるようになった!
ワイルドカード証明書に差し替える
いよいよLet's Encryptでワイルドカード証明書を発行して、さきほど発行した証明書から差し替える。
sudo certbot certonly --manual \
--preferred-challenges dns-01 \
--server https://acme-v02.api.letsencrypt.org/directory \
-m {メールアドレス} \
-d shikakun.dev \
-d *.shikakun.dev
上書きするか尋ねられるので Expand の E を入力。
ワイルドカード証明書はDNS認証をする必要があるらしく、案内されたとおりにCloudflareのDNSの設定でTXTレコードに指定の値を入力。反映されたかな〜くらい待ってEnterを押すと、無事に差し替えられた!
3ヶ月に1度の更新が必要で、上記のcertbotのコマンドを実行すればいいらしい。また、更新にあたってTXTレコードの値を差し替える必要があるとのこと。めんどくさい!けど、たぶんきっと調べればなんかいい方法あるでしょう。