GCEのHTTPS化
1.CertBotをインストール
CertBotとは、Let’s Encryptが提供しているクライアントソフトウェア。
wget https://dl.eff.org/certbot-auto && chmod a+x certbot-auto
2.証明書の発行
CertBotで証明書を作成。
./certbot-auto certonly --webroot -w /var/www/html/ -d ドメイン名
アップデートの確認をされるので、「Y」
通知用のメールアドレスを入力
規約の同意を求められるので「A」
Electronic Frontier Foundationとメールアドレスを共有してよいか?
OKな場合、「Y」、ダメな場合、「N」
証明書完成!
赤枠で囲った部分が作成された証明書のパス
3.証明書の反映
証明書を反映させるため、default-ssl.confを編集
sudo vi /etc/apache2/sites-available/default-ssl.conf
まず、HTTPSでの通信設定として、ファイルの先頭に下記の設定を追記
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
証明書設定のため、既存設定値のコメントアウト(「#」を行の先頭に記載)と作成された証明書のパスを設定
SSLCertificateFile /etc/letsencrypt/live/自分のドメイン名/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/自分のドメイン名/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/自分のドメイン名/chain.pem
4.HTTPをHTTPSへリダイレクトさせる設定
Apacheの設定ファイル(wordpress.conf)を編集
sudo vi /etc/apache2/sites-available/wordpress.conf
規定値を削除後、転送設定を記載
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName 自分のドメイン名
ServerAlias 自分のドメイン名
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
5.Apacheの設定更新と再起動
下記のコマンドを実行
sudo a2ensite default-ssl
sudo a2enmod ssl
sudo systemctl restart apache2
6.証明書の自動更新設定
Let’s Encryptの有効期限は3ヵ月となっているので、証明書が切れる前に自動更新するよう設定
certbotパッケージをletsencryptディレクトリに移動
sudo mv certbot-auto /etc/letsencrypt/
移動されたか確認
ls -la /etc/letsencrypt/
移動はされたが、ファイルの所有者・グループが異なるため、変更
sudo chown -R root.root /etc/letsencrypt/certbot-auto
再度、確認
ls -la /etc/letsencrypt/
自動更新の設定を行うため、crontabを編集
sudo crontab -e
スクリプトを記載し、CTRL + X、Y、Enterの順に押して、crontabファイルを保存
※スクリプトの意味は、「毎週日曜日の3:45に証明書の更新チェック・更新を行い、Apacheを再起動」
45 3 * * 0 /etc/letsencrypt/certbot-auto renew && systemctl restart apache2
HTTPS化の設定完了!
この記事が気に入ったらサポートをしてみませんか?