sslをlet's encryptから、買ってきたのものに変更

SSL切り替え

Let's Encryptの要領でやった。 Apache + OpenSSL 中間CA証明書のインストール手順

SSL証明書切り替え

  1. プライベートキー:foo_key.pem
  2. SSL証明書:fullchain.crt
  3. SSLサーバ証明書:cert.crt(SSL証明書の上半分コピペ)
  4. 中間証明書:chain.crt(SSL証明書の下半分コピペ)

上記ファイルを適当なフォルダにまとめ、/etc/あたりにアップロード。 今回はssl.confの3箇所(foo_key.pem, cert.crt, chain.crt) のパスを設定して、systemctl restart httpdして、ブラウザでhttpsで 動作するか確認して終了。

.htaccesshttpsへのリダイレクト

必要なさそうだけど一応やっておく。 htaccessでHTTPSにリダイレクトする

vi /home/project/approot/public/.htaccess
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Redirect to https
    RewriteCond %{HTTPS} off
    # これだとサブディレクトリのURLがトップのドメインに行ってしまう。
    #RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    # これだとサブディレクトリにも有効
    # ただ、JSON APIのURLはトップページにリダイレクトされてしまう。
    # 数十分後にアクセスしたらJSON APIでも適切にリダイレクトされた。
    RewriteRule ^(.*)$ https://foo.com/$1 [R=301,L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

</IfModule>

.htaccessの書き方よくわかんないや