Let’s Encryptの使い方

Let’s Encryptインストール

Let’s Encryptは無料でsslの証明書を発行してくれる機関です。 /etc/letsencrypt/live/etc/letsencrypt/archiveに、 作成したドメインごとのディレクトリが作成されます。 7日で5証明書しか発行できないのでご注意ください。

letsencryptをインストール前の確認(2017/10/24追記)

初歩的なところで、エラーになったので、念のため追記しておきます。

ファイアーウォール関連の設定確認

firewalldでhttpsの接続を許可しているか ②サーバーのWEB管理画面などにあるファイアーウォールで443(https)ポートの接続を許可しているか を確認してください。

certbot等のインストール

まずは、公式サイトに記載している通りに下記のコマンドでインストール作業をしてください。

httpd.confとvirtual.confの設定

ドキュメントルート(ファイルがあるディレクトリ)が、/var/www/html/example.comの場合。example.comのところは、各自変更してください。

httpd.confのドキュメントルートはそのまま

/etc/httpd/conf/httpd.confのドキュメントルートはそのままで変更しないでください。

virtual.confの作成・変更

/etc/httpd/conf.d/virtual.confが存在しない場合は、自分で作成後に以下のように記載してください。 コンソール(ターミナル)でhttpd再起動 なお、次のステップの「certbot –apache -d example.com」コマンドを実行した際に④httpsとhttpの両方接続の確認で「2」を選択した場合は、virtural.confは以下のように自動で書き変えられていました。

ssl.confもそのままで良い

/etc/httpd/conf.f/ssl.confは「certbot –apache -d example.com」コマンドを実行した際に自動で書き変えられるので、自分で変更する必要はないです。書き変えられた後の該当箇所は下記のような感じになっていました。

コンソール(ターミナル)でコマンド入力

①メールアドレスの入力が求められます。

メールアドレスを入力してください。

②サービス同意を求められます。

a」で同意してください。

③メーリングリストへの登録を求められます。

任意ですので、「N」を選択します。

④HTTPSとHTTP接続を両方できるようにするのか問われます

任意で好きな方を選択してください。 無事申請が成功したら以下のように表示されます。

httpdのエラー確認

httpdの再起動

Let’s Encryptの期限

「90日」で期限が切れるので、その都度、下記のコマンドが必要となります。 ※cerbot renewは、期限が切れる30日前になれば更新してくれます。つまり、cronで更新設定をしておけば90-30=60日後に更新されます。 /etc/letsencrypt/renewalディレクトリにあるファイルで更新日を確認できます。

Let’s Encryptをcronを使って自動更新

cronをインストールする

cronie-noanacronをインストールした後にcronie-anacronを削除
必ずcronie-anacronを削除するようにしてください。

/etc/cron.d/dailyjobsを編集

certbot renewは、1日何回やってもペナルティーが課されないので、cronを使って2回実行することにします。 /etc/cron.d/dailyjobsを編集してください。 以下の内容を追記してください。 追記後の内容は以下の通りになります。

cron再起動

cronの記載方法

分 時間 日 月 曜 命令の順番に書く root権限が必要な場合は、 分 時間 日 月 曜 root 命令 「*」はすべてを意味する。 「–quiet」は、補足メッセージを表示しない。 2,4のようにカンマ区切りにすると、2時と4時と2回指定することができる。

cronのログ確認方法

Let’s Encryptの削除

何故かどう頑張っても、Let’s Encryptで証明書を発行してもエラーになった場合に、Let’s Encryptの削除する方法です。

以下のコマンド2つを実行してください。

1つ目のコマンド。

2018/03/06追記

上記のコマンドを実行ししたら、下記のように問われるので、「y」を選択すると、「certbot delete」コマンドを実行しなくてもdeleteしてくれました。 2つめ。上記でyを選択したら必要ない。
/etc/letsencrypt/live/や/etc/letsencrypt/archive/あたりがごっそり削除されているのでご確認ください。
参照:https://certbot.eff.org/docs/using.html#changing-a-certificate-s-domains

certbot renewのエラー対策

2019/06/30 pythonに問題があった場合

2019/06/30にふと見るとLet’s Encryptが更新されていなかったので、手動で「certbot renew」したところ、以下のエラーが発生。 https://pandanote.info/?p=1225の情報に従い、 してみるも、「一致した引数がありません: python3-certbot-apache」と表示され、インストールできない。 そこで以下を再度実行したら解決したので、記録しておきます。 すると「python2-certbot-apache」と依存系ファイルがインストールされました。 この後で「cerbot renew」で問題なく更新されました。

パス関連でエラーが発生している場合

以下のファイルを確認してみてください。 /etc/letsencrypt/renewal/ドメイン.conf

httpdの再起動