さくらのVPS + Let’s Encrypt + nginxでワイルドカード証明書を発行する
はい、タイトルの通りさくらのVPSでワイルドカード証明書を無事取得できたのでそのコマンド履歴などを共有します。
環境
今の環境としては以下のような状態です
- さくらのVPS メモリ2Gプラン
- nginx
- 443ポート解放済
- CentOS7(カスタムインストール)
- クライアント MacOS
手順
淡々と行きましょう
-
certbotをインストール
はじめにcertbotコマンドをインストール
ワイルドカード対応のバージョンは”epel-release”いれておけば使用出来るので、curlなどで直接落とさなくてもOKです。
$ sudo yum -y install epel-release
$ sudo yum -y install certbot
-
nginxをインストール
次にnginx。最新版をいれたいのでrepositoryを追加
$ sudo vi /etc/yum.repos.d/nginx.repo
下記を貼り付けて保存
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
あとは普通にインストールすればOK
$ sudo yum -y install nginx
$ sudo systemctl start nginx
$ sudosystemctl enable nginx
- certbotコマンド実行
下記ながーいコマンドを実行。自分の環境に応じて一部書き換えてください
sudo certbot certonly --manual -d *.自分のドメイン -m メールアドレス --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01
Yes Noの質問みたいなものが出ますがYesで問題ないです
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Please deploy a DNS TXT record under the name
_acme-challenge.lmimsra.work with the following value:zbmSYQ47ur78EMW9nPVqcLKZNRQH0Z835RV9pcB0l04Before continuing, verify the record is deployed.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Press Enter to Continue
こんな感じの表示が出てきたらアンダーラインの部分をコピーして次に進みます。 - さくらのVPSコンソールでTXTを設定
ドメインメニューを開いて、certonlyコマンドで指定したドメインのゾーン編集へ進む
エントリ名:_acme-challenge
タイプ:TXT
データ:コピーしたながーい文字列
これで登録し、別枠でターミナルを立ち上げる
$ host -t txt _acme-challenge.ドメイン名
これで先ほど登録した情報が表示されたらPuress Enter to Continueで止めていたcertonlyコマンドを続行します。 - コマンドを続行
Puress Enter to Continueの状態でテキトーにキーを押すと何かゴニョゴニョして、処理が完了します!
何事もなく終われば・・・ - 完成!
ssl通信用のconfファイルを描いてnginxを再起動かけて完了です。
色々省いた一例です↓
server {
listen 443;
server_name www.ドメイン;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
ssl_certificate /etc/letsencrypt/live/ドメイン/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ドメイン/privkey.pem;error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/chare/nginx/html;
}
ssl on;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
}
ワイルドカード証明書、面倒な手間が少ないのでぜひ使ってみましょう!