はじめに
本内容はLet's Encrypt ワイルドカードのSSl証明書の発行手順を自分用のメモとして書いております。
これにより、何らかの問題が発生しても一切責任は取りません。
必要なものを用意しようぜ
その前に今回の環境
(SSL発行):CentOS Linux release 7.4.1708
(Webサーバー): CentOS Linux release 7.3.1611
Apache: Apache/2.4.6
(クライアント): Windows7
ドメイン: Cloudflare
サーバーはConoHaのvpsです。
以前間違った知識をドヤ顔ぶっこいて書いたConoHaです。
あのときは申し訳ございませんでした。
さてさて、今回の環境は以上のとおりですが、諸事情で発行したVPSとWebサーバーが別なのでFileZillaを使って転送したりしました。
必要なものをインストールします。
yum install git
git clone https://github.com/certbot/certbot.git
yumからcertbotがインストール可能らしいですが、自分的にはgitからクローンしました。
インストールしたんですが、バージョンが古いためかワイルドカードの発行ができませんでした。
特に、ワイルドカード証明書発行時にエラーが出る場合はバージョンを確認してみてください。
コマンドうつぞい
SSHでコマンド送信するわけですが、ConoHa等のvpsのコンソールからでも実行が可能だと思います。
./certbot-auto certonly \
--manual \
--domain <ドメイン> --domain *.<ドメイン> \
--email <メールアドレス> \
--agree-tos \
--manual-public-ip-logging-ok \
--preferred-challenges dns-01 \
--server https://acme-v02.api.letsencrypt.org/directory
上をテンプレにして書き換えるといいと思います。
注意する点はdomainをワイルドカードと普通のドメインの2つを指定していることです。
実際やってみたわけですが、ワイルドカードだけだとブラウザ側ではSSLのエラーが出ます。
ドメインのTXTの設定いるじゃん
表示されているレコードを設定する必要があります。
こんな感じなの(通常は白線は出ませんが、編集で隠してあります)が出るはずです。
これをドメインのレコードに登録します。
浸透に最大で24時間かかるようですが、Cloudflareの場合結構早いようです。
発行成功するとこんな感じ。
失敗したらエラーが出ます。
大体は、TXTの浸透ができてないだけっぽいです。
発行した証明書をwebに適応させるぞい
スクショ3枚めの白線で隠してあるファイルパス2つが証明書(上)とプレイベート証明書(下)です。
あとは、httpd.confをいじるだけです。
SSLCertificateFile /etc/letsencrypt/live/<ドメイン>/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<ドメイン>/privkey.pem
若しくは
SSLCertificateFile /etc/letsencrypt/archive/<ドメイン>/fullchain(数字[*1]).pem
SSLCertificateKeyFile /etc/letsencrypt/archive/<ドメイン>/privkey(数字[*1]).pem
[*1]:発行数による。はじめて発行した場合1,それ以上の場合2や3など。
それでApacheをリロードさせれば設定完了です。
終わりに
多分できると思います。
サンクス
- AWS CloudFront(画像CDN配信用)
- Let's Encrypt 総合ポータル
- どこかのqiita記事 (テンプレをお借りしましたがどこの記事か忘れました。見つけたらリンク更新します。)
- その他ワイルドカード証明書発行に当たり幾つかのサイト内容を参考にしました。
サンクスに書かせていただいたサイト様サービス関係者様、ページの下の方からではございますが、お礼申し上げます。
私のリンク
Twitter: @yamagami2211
Webサイト: https://yama2211.biz/