今時 http なサイトは流行らないのでとりあえず親サービスの SSL を有効化することにした。以下、その手順のメモ。
参考: Let’s EncryptのSSL証明書で、安全なウェブサイトを公開
apache だったので SSL のモジュールを導入
yum install -y mod_ssl
ファイヤーウォールで https を通すように設定
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
証明書の取得をするスクリプトを取ってくる
curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
chmod 700 /usr/bin/certbot-auto
証明書を取得する
certbot-auto certonly --webroot -w /var/www/html -d <ドメイン名> --email <メール>@<アドレス>
(ドキュメントルートにファイルを置いてアクセスすることで存在確認を取っている)
/etc/letsencrypt/live/<ドメイン名> に証明書ファイルが取得される。これを apache の設定に書き込む。(プロトコル指定は許可リストで指定…参考)
SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
SSLCertificateFile /etc/letsencrypt/live/<ドメイン名>/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<ドメイン名>/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/<ドメイン名>/chain.pem
SSL 用の VirtualHost 設定を追加
<VirtualHost *:443> ServerName <ドメイン名> DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/letsencrypt/live/<ドメイン名>/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/<ドメイン名>/privkey.pem <Directory "/home/lbi/www/html"> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS CustomLog logs/ssl-access_log combined env=!no_log </VirtualHost>
XOOPS Cube Legacy を使っていたので設定をSSL対応に修正
define('XOOPS_URL', (isset($_SERVER['HTTPS'])?'https://':'http://').$_SERVER['HTTP_HOST']);
最後に apache の再起動
systemctl restart httpd
ブラウザで https にアクセスしてみて確認する。
Let’s Encrypt の証明は有効期間が短いので更新を自動で行うように /etc/crontab を設定しておく。
15 3 * * 0 root /usr/bin/certbot-auto renew --post-hook "systemctl restart httpd" 1 > /dev/null 2 > /dev/null