以前、XREAに無料SSL証明書を導入してみましたという記事を投稿したのですが、思いのほか需要があるネタらしく、当サイトでは和楽一筋関連の次にアクセス数が多い記事になっています。Webサイトをhttps化していない場合、セキュリティが不十分であるだけでなく、ブラウザに警告表示が出たり、Googleなどの検索エンジンにランクを下げられるという話もあり、今後は個人サイトであってもhttps化(SSLサーバ証明書の導入)が重要になってきます。昔は有料のSSL証明書しかなく、個人が利用するには敷居が高いものでしたが、今は無料のサービスがあります。Encrypt」をインストールして、証明書の自動更新設定まで実施する方法を備忘録としてまとめました。Group)が運営しているプロジェクトです。SSL/TLSサーバ証明書の無料発行や、証明書の発行・設定・更新の自動化を通して、httpsなどの安全な通信の普及を目指しています。2016年にサービスが始まったそうです。英語の公式サイトはこちら。Encrypt総合ポータルという非公式解説サイトに詳しい情報があります。今回の記事は、以下の前提でまとめています。独自ドメインを保有していることSSLサーバ証明書の導入まずは、サイトにSSLサーバ証明書を導入していきます。(1)ツールのダウンロード・インストールサーバにログインして、rootユーザになります。-関連ツールがEPELリポジトリに入っているため、インストールします。Encryptでは、「Certbot」というクライアントソフトウェアを使って証明書の取得・更新を行います。Certbotをダウンロードして、実行権限を付与。certbot-autoCertbotを実行。./certbot-autoこれを実行すると、パッケージ管理システムyumによって関連ツールが自動でインストールされた後、設定画面に移ります。インストール時に確認を求められたら「y」を入力します。「完了しました!」というメッセージのあと、設定に進みます。自分の環境の場合、Apacheとnginxのどちらを使うか質問されたので、「2」を入力。2メールアドレスを入力します。証明書の期限など、重要なお知らせが届くので、必ず連絡がとれるメールアドレスにしましょう。xxxxxxxxx@xxxxxx.com規約に同意するよう求められます。Aメールアドレスを電子フロンティア財団に共有するか質問されます。財団からメールが届くらしいのですが、不要なので「N」を入力。NWebサーバに複数のサイトが同居している場合、どのサイトをHTTPS化するか質問されます。1少し待つと、自動で証明書の取得が進みます。nginxの設定ファイルには、必要な設定が自動追加されます。set(['example01.jonkara.net'])HTTPSへのリダイレクト設定をするか指定します。好きな方を選んで大丈夫ですが、Certbotに設定をいじられたくなければ「1」にしておきましょう。1「Congratulations!」と表示されたら、設定完了です。証明書の取得も終わり、使用できる状態になっています。ブラウザでサイトを開いて確認してみましょう。at:https://www.ssllabs.com/ssltest/analyze.html?d=example01.jonkara.net-------------------------------------------------------------------------------(参考)最後に重要事項が表示されます。証明書や秘密鍵ファイルの保存場所などが書いてあるので、気になる人は確認してみましょう。半年ほど前にこの設定をした際、androidスマートフォンのChromeブラウザでサイトを表示すると、「この接続ではプライバシーが保護されていません」「このサイトのセキュリティ証明書には問題があります」というエラーが表示されることがありました。nginxの設定ファイルで証明書ファイル「cert.pem」を指定している部分を、中間CA証明書も含む「fullchain.pem」に置き換えると解消しました。/etc/letsencrypt/live/example01.jonkara.net/fullchain.pem;最新のCertbotでは、この不具合は改善されているようです。Encryptの証明書の有効期限は3ヶ月となっていて、期限が過ぎると使えなくなります。3ヶ月毎に手作業で取得し直すのは大変なので、期限が切れる前に自動で更新する設定を入れましょう。(1)証明書更新のコマンド証明書の更新にはこんなコマンドを使います。restart"renewが、証明書を更新するオプションです。–post-hookでは、証明書が更新された場合に実行するコマンドを指定します。このコマンドの場合、もし証明書の期限が近ければ更新をして、新しい証明書を有効にするためにnginxを再起動します。証明書の期限に余裕があれば、何も更新されず、–post-hookのコマンドも実行されません。(2)cron設定このコマンドを定期的に自動実行するため、cronにコマンドを登録します。cronの編集画面を表示。-e以下の設定を追加します。ここでは、毎週日曜日の3時50分に、certbot-autoコマンドを実行するよう指定しました。restart"設定されたことを確認。PATH」というエラーになる場合があるので注意です。まとめ以上で、無料SSL証明書を導入し、自動更新の設定までできました。Certbotの指示に従って進めるだけで簡単にSSL証明書の設定ができるので、ぜひ試してみましょう。コメントをキャンセルメールアドレスが公開されることはありません。