ZeroSSLより証明書ダウンロード
ZeroSSLで当サイトをhttps化した手順スクリーンショット
Get Free SSL
New Certificate
ドメイン名yeh.jpを入力し Next Step →
90-Day Certificateを選択し Next Step →
Next Step →
Freeを確認して Next Step →
Email Verificationを選択しメールを待つも全然メールが送られてこなかったので
HTTP File Upload を選択
Download File をクリックし認証ファイル(テキストファイル)をダウンロードし
DocumentRootの直下に/.well-known/pki-validation フォルダを作成し認証ファイルをSCPで転送
外部からテキストファイルがアクセスできるか確認→OK
ファイル設置後 Verify Domain クリック
ZeroSSLで確認され 証明書がダウンロード出来る(Download Certificate(.zip))
zipファイル ダウンロード後
zipファイルの中身(以下の3ファイル)
ca_bundle.crt:ルート証明書
certificate.crt:サーバー証明書
private.key:サーバー秘密鍵
Email Verificationを選択しメールを待つも全然メールが送られてこなかったが、HTTPで認証を済ませた後にメールは送られてきました。(遅い、、、)
サーバ設定
証明書・秘密鍵ファイルの設置
/etc/ssl/
ca_bundle.crt
certificate.crt
private.key
を設置
バックアップ
WordPressで用いているMySQLデータベースのダンプを取得(バックアップ)
20210418_yeh_mysql.dmp
Public_html配下を全部バックアップ
20210418_public_htmlBK.tar.gz
MySQLデータベースのUpdate
マルチサイトとして設定しているWordPressで用いているDBテーブルの記述をhttpをhttpsにUpdate 今回はphpMyAdminを使用
wp-options
編集からhttpをhttpsとする。
Apache Config設定 1IPアドレスのマルチサイト設定
conf.d内にVirtualHost設定
Rewrite設定
Port80
http://itamae-dining.ddo.jp(廃止予定)→https://fujisawa-sho.jp
http://yeh.jp→https://yeh.jp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
#itamae-dining:80 <VirtualHost *:80> ServerName itamae-dining.ddo.jp DocumentRoot /home/itamae-dining/public_html/ RewriteEngine On RewriteCond %{http_host} ^itamae-dining\.ddo\.jp RewriteRule ^(.*)$ https://fujisawa-sho.jp$1 [R=301,L] </VirtualHost> #yeh.jp:80 <VirtualHost *:80> ServerName yeh.jp DocumentRoot /home/httpd/public_html/ RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </VirtualHost> #fujisawa-sho:80 <VirtualHost *:80> ServerName fujisawa-sho.jp DocumentRoot /home/itamae-dining/public_html/ RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </VirtualHost> #yeh.jp:443 <VirtualHost *:443> ServerName yeh.jp DocumentRoot /home/httpd/public_html/ ErrorLog logs/yeh-error_log CustomLog logs/yeh_log common SSLEngine On SSLProtocol All -SSLv2 -SSLv3 -TLSv1 SSLCertificateFile /etc/ssl/certificate.crt SSLCertificateKeyFile /etc/ssl/private.key SSLCertificateChainFile /etc/ssl/ca_bundle.crt </VirtualHost> #fujisawa-sho.jp:443 <VirtualHost *:443> ServerName fujisawa-sho.jp DocumentRoot /home/itamae-dining/public_html ErrorLog logs/itamae-error_log CustomLog logs/itamae-access_log common SSLEngine On SSLProtocol All -SSLv2 -SSLv3 -TLSv1 SSLCertificateFile /etc/ssl/fujisawa-sho.jp/certificate.crt SSLCertificateKeyFile /etc/ssl/fujisawa-sho.jp/private.key SSLCertificateChainFile /etc/ssl/fujisawa-sho.jp/ca_bundle.crt </VirtualHost> |
# apachectl configtest
Syntax OK
# systemctl restart httpd
備忘録的今回のRewrite設定
RewriteCond %{http_host} ^itamae-dining\.ddo\.jp
→もしURLホスト名がitamae-dining.ddo.jpだったら
RewriteRule ^(.*)$ https://fujisawa-sho.jp$1 [R=301,L]
→^(.*)$ 正規表現 https://fujiwa-sho.jp
当初はネットほぼコピペで$1の前に/を記述していた。これは.htaccess内でconfは/不要
RewriteRule ^(.*)$ https://fujisawa-sho.jp/$1 [R=301,L]
Logを見ていて判明しました。
RewriteCond %{HTTPS} off
→https以外からの通信の時
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
→httpsにリライトする
RewriteCond | 書換を実行する条件 |
RewriteRule | リライトのルール |
%{http_host} | URLホスト名の変数 |
\ | エスケープ この場合は.をそのまま文字の.として認識させる |
^(.*)$ | ^行頭 .任意の一文字 * 直線の文字を0回以上繰り返す $ 行末=全てにマッチ |
R=301 | 恒久的に変更される時の転送処理 |
L | URL書き換え処理を中止し以降は書き換えを行わないようにする |
$1 | 一つ前の()中身 上記の場合ドメイン名以降のURLを指す |
Rewriteのログ
#itamae-dining:80
<VirtualHost *:80>
LogLevel info rewrite:trace2
</VirtualHost>
記述を追加し
systemctl restart httpd
tail -f /var/log/httpd/error_log
[Sun May 23 16:47:42.096540 2021] [rewrite:trace1] [pid 20423] mod_rewrite.c(470): [client アクセス元のIPアドレス:54004] アクセス元のIPアドレス - - [itamae-dining.ddo.jp/sid#7f2bfa11e978][rid#7f2bfa3a3ac0/initial] redirect to https://fujisawa-sho.jp/ [REDIRECT/301]
リダイレクトされていることを確認
https化以外の失敗
テーマ設定が初期化してしまった
WordPressで使っているテーマが初期設定になってしまった。この際ということで、別テーマで設定を行っている。orz
WordPressサイトアップグレードが失敗 → 解決済み
注: https://yeh.jp の更新中に問題が発生しました。サーバーが稼働しているサイトに接続できない可能性があります。エラーメッセージ: cURL error 35: Encountered end of file
不具合を引きずりながら運用中
解決しました。メッセージ中のcURLに反応してcurlのupdateをしてみました。VPSがダメダメでまるごとのyum updateが出来ないので、
# yum update curl
-> トランザクションの確認を実行しています。
---> パッケージ curl.x86_64 0:7.29.0-25.el7.centos を 更新
---> パッケージ curl.x86_64 0:7.29.0-59.el7_9.1 を アップデート
よかった。。。
コメント