###### tags: `AWS`,`Wordpress`,`Apache`,`ELB` # サイトのSSL化 --- WEBサイトを作成するにあたりSSL化対応する 外部からの接続はAWSのELBまでSSL(443)、ELBからEC2間は80で通信が行われるので以下の対応が必要となる。 ### 1. httpd.confに追記する * 基本的な設定が済んでいる事が前提。 #### httpd.confに以下を追記する ``` SetEnvIf X-Forwarded-Proto https HTTPS=on ``` ### 2. wp-config.phpに追記する * 基本的な設定が済んでいる事が前提。 #### wp-config.phpに以下を追記する。 追記する場所はファイル内の==編集が必要なのはここまでです==が記述されている行よりも前でなければいけない ``` /* SSL if (isset($_SERVER[‘HTTP_X_FORWARDED_PROTO’]) && $_SERVER[‘HTTP_X_FORWARDED_PROTO’] === “https”) { $_SERVER[‘HTTPS’] = ‘on’; } ``` ### 3. WordPressサイトのURL更新 #### EC2からRDSへ接続し直接DBを更新する ``` 【URL確認】 SELECT * FROM wp_options WHERE option_name IN ('home','siteurl'); 【URL更新】 update wp_options SET option_value ="https://サイトURL" where option_id = 1 OR option_id = 2; ``` ### 4.httpでの接続をhttpsにリダイレクト ==ELB==の==リスナー==の==http:80==を編集 デフォルトアクションに以下を設定 ``` リダイレクト先https://#{host}:443/#{path}?#{query} ステータスコード:HTTP_301 ``` ### 【追記】 HTTPS (HTTP/2) 接続時に、プロトコルエラーが発生する Amazon Linux標準リポジトリからhttpdをインストールした場合、==http2_module==が依存関係で一緒にインストールされてしまう。 通信として利用されるのは ==ALB== → ==HTTP/2== ==ALB配下のEC2との通信== → ==HTTP/1.1== の為、ブラウザが誤作動して見れなくなっている(curlも❌) その際の対応が以下 ``` 1. rpmソースのダウンロード yumdownloader --source mod_http2 2. パッケージの更新 rpm -Uvh mod_http2-1.15.3-2.amzn2.src.rpm 3. 設定ファイルの特定&yum上書き禁止の確認(%config(noreplace)) cat ~/rpmbuild/SPECS/mod_http2.spec | grep 10-h2.conf コマンド結果:↓ %config(noreplace) echo "LoadModule http2_module modules/mod_http2.so" > %{buildroot}%{_httpd_modconfdir}/10-h2.conf %config(noreplace) %{_httpd_modconfdir}/10-h2.conf 4. モジュール無効化 sed -i -e "s/^LoadModule/#LoadModule/g" /etc/httpd/conf.modules.d/10-h2.conf 5. 無効化確認 cat /etc/httpd/conf.modules.d/10-h2.conf コマンド結果:↓ #LoadModule http2_module modules/mod_http2.so 6. httpdを再起動してok ```
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.