やみとものプログラミング日記 やみとものプログラミング日記
TOP 無料でサイトをSSL対応させる方法
無料でサイトをSSL対応させる方法

無料でサイトをSSL対応させる方法

プログラミング Web
作成日時: 2019年7月6日
更新日時: 2019年7月29日
SSL対応していないと、例えばChromeだとURLに「保護されていない通信」と表示される他、
SEOにも悪影響があるらしい。
この記事では「Let’s Encrypt」を利用して無料で自分のサイトをSSL対応させる方法を紹介する。

検証環境と注意

以下の手順はCentOS 7.5とApache2.4.6で動作確認した。
注意として、すでにSSL対応していないサイトを公開していることを前提とします。

ファイアウォールの設定

まず次のコマンドを実行しssl(https)のポートが開いているか確認します。
sudo firewall-cmd --list-all ※パスワード入力してください(以後sudoコマンドを実行した場合は必要に応じてパスワードを入力してください)
servicesにhttpsがある場合ファイアウォールの設定はできているので次の項目に進んでください。 httpsが無い場合は次の手順を行ってください。

httpsが無い場合の手順

次のコマンドを実行してください。
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
2回successと表示されれば成功です。

mod_ssl(ApacheのSSLモジュール)のインストール

次のコマンドを実行してください。
sudo yum -y install mod_ssl
「インストール済み」と表示された場合はインストール済みだったということなので問題ありません。

httpdにmod_sslが登録されたかどうかの確認

sudo httpd -M | grep ssl
何か表示されればOK。

httpdの再起動

sudo systemctl restart httpd



ここからが本番Let's Encryptを利用してサーバー証明書を取得する

必要なパッケージのインストール

次のコマンドを順に実行してください。
sudo yum install epel-release
sudo yum -y install certbot
sudo yum -y install python2-certbot-apache

サーバー証明書の作成

次のコマンドを実行してください。
sudo certbot certonly --webroot -w ドキュメントルート -d ホスト名
ドキュメントルートにはhttpdに設定されているドキュメントルート(Apacheで公開されているディレクトリ) を書いてください。httpdに設定されているドキュメントルートは/etc/httpd/conf/httpd.confを見れば分かります。
ドキュメントルートの例:/var/www/mysite
ホスト名の例:blog.yamitomo.info
このコマンドを実行するといくつか質問されるかもしれませんが、適切に回答してください。 サーバー証明書などは
/etc/letsencrypt/live/ホスト名
に作られます。

httpdの設定

/etc/httpd/conf.d/ssl.confを編集します。管理者権限が必要なのでsu -などで管理者になったのちviなどで編集してください。
SSLCertificateFileの項目を以下のように編集します。
SSLCertificateFile /etc/letsencrypt/live/ホスト名/cert.pem
SSLCertificateKeyFileの項目を以下のように編集します。 SSLCertificateKeyFile /etc/letsencrypt/live/ホスト名/privkey.pem
SSLCertificateChainFileの項目を以下のように編集します。 SSLCertificateChainFile /etc/letsencrypt/live/ホスト名/chain.pem
そして httpd -t
コマンドで設定ファイルに間違いがないか検証します。
Syntax OKが出れば成功です。
sudo systemctl restart httpd
でhttpdを再起動します。

SSL対応完了

これでSSL対応ができるはずです。
今回の手順は次のサイトを参考にしてやってみました。
次のサイトの方が各手順について詳しく書いてあるので、この記事の手順でうまくいかなかったら次のサイトを見てください。
常時SSL化待ったなし!CentOS 7 と Apacheに Let’s Encryptで信頼性の高いHTTPSを設定する