やった事
certbotを使う事で無料のSSL証明書を発行しました。
今回はその流れを知見としておきます。
作業環境
- conoha vps 1Gプラン
- CentOS stream 9
- Apache
SSL証明書って何?
私たちがサイトにアクセスする際に用いているHTTP通信を暗号化する為に必要となるファイルのことです。
certbotって何?
無料、自動でSSL証明書を発行、更新できるOSSツールです。
認証局であるLet’s Encryptによって証明書を作成しています。
コマンドを用いる事で証明書を
- インストール
- 更新(期限切れ前に更新できる)
を行ってくれます。
オススメ
- コマンドラインが問題ない
- すでにhttpサイトが公開されている(port 80)
- サーバーにssh接続とsudoが可能
導入までの流れ
conoha vpsを用いているので
を参考にしたいのですが
# yum install certbot python2-certbot-apache
で詰んでしまうので公式の
を参考に導入しました。
1 サーバーにssh接続をする
これはそのままssh接続を行えば問題ないです。
2 snapdをインストールする
を参考に導入するといいです。
3 snapdを最新にする
# sudo snap install core; sudo snap refresh core
シンボリックリンクがしっかり貼られているかも同時に確認しとくと良いです。
4 certbot os packagesの排除
複数存在すると実行時に問題になってしまうので
存在している場合
# sudo [apt-get/dnf/yum] remove certbot
で削除しとくと良いです。
5 certbotのインストール
# sudo snap install --classic certbot
6 コマンドの準備
コマンドが使える様にシンボリックリンクを貼ります。
# sudo ln -s /snap/bin/certbot /usr/bin/certbot
7 certbotの使い方
2通り存在します
7.1 証明書とインストールを両方行う
自動的にHTTPSのアクセスを可能にしてくれます。
(Apache)
# sudo certbot --apache
7.2 証明書のみ取得
サーバー、今回はApacheの設定を手作業で行いたい人用
# sudo certbot certonly --apache
8 自動更新のテスト
certbotには証明書を自動更新してくれるcron,systemdが存在しています。
テスト用のコマンドです。
# sudo certbot renew --dry-run
9 確認
自身のサイトであるhttpsを見る事で確認ができます。
おまけ 自動更新の方法
今回はcronを用いた方法です。
# crontab -e
を行った後vimエディタが開くので
[minute] [hour] [day] [month] [day of the week] sudo certbot renew --pre-hook "systemctl stop httpd" --deploy-hook "systemctl start httpd"
を保存しておくと対応した時間に実行されます。
- --pre-hook:コマンド実行前に""内部を実行する
- --deploy-hook:証明書の更新が成功した時に""内部を実行する
参考
感想
snapdのインストールに時間かかってしまいましたがその後はすんなり導入できました。
後はwebアプリを作成できる様頑張りたいです。