h2o SSL設定追加

CentOS Stream 8

SSL証明書を取得したので、暗号化通信ができるように設定する
事前に、ファイアウォールのポートはあけておいてあるものとする

設定ファイルの編集

vi /etc/h2o/h2o.conf
user: h2o
gzip: ON
file.index: [ 'index.html', 'index.php' ]

# PHPの設定
file.custom-handler:
  extension: .php
  fastcgi.connect:
    port: /var/run/php-fpm/www.sock
    type: unix

------↓ここから変更箇所↓-----
hosts:
  "xxxxxxxxx.com:443":
    listen:
      port: 443
      ssl:
        minimum-version: TLSv1.2
        certificate-file: "/etc/letsencrypt/live/xxxxxxxxx.com/fullchain.pem" ← Let's Encriptで取得した証明書ファイルのパス
        key-file: "/etc/letsencrypt/live/xxxxxxxxx.com/privkey.pem" ← Let's Encriptで取得したkeyファイルのパス
        cipher-preference: server
        cipher-suite: "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:!DSS"
------↑ここまで変更箇所↑-----

    paths:
      "/":
        file.dir: /var/www/html
        redirect:
            url: /index.php/
            internal: YES
            status: 307
      "/phpMyAdmin/":
          mruby.handler-file: /etc/h2o/ip.rb
          file.dir: /usr/share/phpMyAdmin

------↓ここから変更箇所↓-----
  "xxxxxxxxx.com:80":
    listen:
      port: 80
    paths:
      "/":
        redirect:
            url: "https://xxxxxxxxx.com/" ← 常時SSL化するための設定
            status: 301 ← 常時SSL化するための設定
------↑ここまで変更箇所↑-----

サービスの再起動

systemctl restart h2o
systemctl status h2o

参考

CentOS7 に Webサーバ H2O をインストールして HTTP/2 に対応させました(WordPress を動作させるまで) | MOMENTS
CentOS8 も試しているのですが、あちらは Apache でも標準でHTTP/2に対応しているんですよね。しかしながら、CentOS7 収録の Apache では対応していな...

コメント

タイトルとURLをコピーしました