SSL(Secure Sockets Layer)とはデータ送受信を暗号化する技術でなんたら
SSLしていないWebサイトは閲覧前に警告が出たりします。
当然、閲覧者に不信感を与えるので、せっかく作ったWebサイトを閲覧してもらえません。
SSL化に必要なSSL証明書は無料でも入手可能です。
このページではLet’s Encrypt認証局から無料のSSL証明書を入手して、WordPressブログサイトのSSL化方法を記述します。
前提条件
- 「apache」でWebサーバを立ち上げ済
- 立ち上げたWebサーバにWordpressをインストール済
- ポートの443番を開放済
apache設定変更
SSL・VirtualHost設定の有効化
下記コマンドを実行してSSLを有効にします。
下記のコマンドを実行してSSL用のVirtualHost設定を有効にします。
下記コマンドを実行してエラーチェックを行います。
「Syntax OK」と表示されたら、下記コマンドを実行してapacheを再起動します。
ちなみに、apacheを再起動するコマンドはいくつかあるので、お好みでどうぞ。
設定変更のうんちく
「/etc/apache2/」ディレクトリには名前の前方が「conf」、「mods」、「sites」で、後方がそれぞれ「available」、「enabled」となっているディレクトリがあります。
下記のコマンドを実行することで「available」にあるconfファイルのシンボリックリンクを「enabled」に作成することで設定が有効になる仕組みです。
無効化するにはコマンドの「en」を「dis」に変えれば、シンボリックリンクが削除されます。
SSL証明書の入手
Certbotのインストール
「Certbot」はLet’s Encrypt認証局からSSL証明書を入手するためのパッケージです。
下記のコマンドを実行して「Certbot」および追加パッケージをインストールします。
SSL証明書の入手
下記コマンドを実行してSSL証明書の発行およびインストールを行います。
いくつか質問事項があるので文章に従って入力してください
- SSL証明書を発行するドメインの選択
- httpsへのリダイレクト設定をしない(1)する(2) #基本(2)新規発行のみ?
- SSL証明書の再取得(1)更新(2) #すでにSSL証明書が発行されている場合?
エラーが発生しないで「Congratulations! ~」と表示されれば設定完了です。
WordPress設定変更
WordPressの「設定」>「一般」で「WordPress アドレス (URL)」と「サイトアドレス (URL)」を「https://」で始まる形に変更します。
Webサイトがhttpsになっているか確認する。なっていなかったらapacheを再起動する。
すでに記事等がある場合は内部リンクや画像URLも変更してください。
プラグインもあるはずです。
SSL証明書の自動更新設定
Let’s Encrypt認証局から入手したSSL証明書の有効期限は90日です。
そのため、期限を過ぎてしまう前に延長申請を行う必要が発生しますが、「Certbot」コマンドを使ったシェルスクリプトを作れば「cron」で自動化できます。
まず、下記のソースコードを入力したシェルスクリプトを作成します。
ファイル名は「certbot」とします。
このシェルスクリプトを「/etc/cron.weekly」に配置します。
下記のコマンドを実行して、シェルスクリプトに実行権限を付与します。
これで毎週決まった時間に証明書の延長申請が行われます。
シェルスクリプトの実行タイミングは下記コマンドを実行することで確認できます。
ちなみに、SSL証明書有効期限が30日未満になるまで実際に期限の延長はされません。
強制的に更新する方法もありますが、短期間に連続で行うと更新ができなくなるため注意してください。
参考
下記の情報元を参考にしました。この場を借りて、感謝申し上げます。