前提
証明書は取得済み。以下の3ファイルを用意してあるものとする。
/etc/httpd/conf/ssl.key/mydomain.jp/[SSLサーバ証明書ファイル]
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/mydomain.jp/[SSLサーバ証明書用秘密鍵]
SSLCertificateChainFile /etc/httpd/conf/ssl.key/mydomain.jp/[CSPSSLの中間証明書ファイル]
環境
CentOS 7.4
Apache 2.2.6
ポート開放
HTTPSはポート443を使いますので、まずはその設定。
- 恒久的な設定の反映
firewall-cmd --zone=public --add-port=443/tcp --permanent
- リロード
firewall-cmd -reload
- 設定の確認
firewall-cmd --list-all
Apacheのconfファイル
Apache側でもポート443について記載。
コマンド:vi /etc/httpd/conf/httpd.conf
記述内容:
NameVirtualHost *:80
NameVirtualHost *:443
ドメインに対して
続いて、ドメインに対して「この証明書を使いまっせ」という設定。
※ドメイン名「mydomain.jp」を適宜読み替えてください。
コマンド:vi /etc/httpd/vhost/mydomain.jp.conf
記述内容:
<virtualHost *:80>
ServerName mydomain.jp
DocumentRoot /html/www/htdocs
SSLEngine off
<Directory /html/www/htdocs>
Options -Indexes FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName mydomain.jp
DocumentRoot /html/www/htdocs
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.key/mydomain.jp/[SSLサーバ証明書ファイル]
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/mydomain.jp/[SSLサーバ証明書用秘密鍵]
SSLCertificateChainFile /etc/httpd/conf/ssl.key/mydomain.jp/[CSPSSLの中間証明書ファイル]
</VirtualHost>
証明書ファイルの権限設定
所有者をrootにしておく。
chmod 400 /etc/httpd/conf/ssl.key/mydomain.jp/[SSLサーバ証明書ファイル]
chmod 400 /etc/httpd/conf/ssl.key/mydomain.jp/[CSPSSLの中間証明書ファイル]
chown root:root /etc/httpd/conf/ssl.key/mydomain.jp/[SSLサーバ証明書ファイル]
chown root:root /etc/httpd/conf/ssl.key/mydomain.jp/[CSPSSLの中間証明書ファイル]
httpからhttpsへリダイレクトさせる
httpでのアクセスは全部httpsにリダイレクトする
コマンド:vi /html/www/htdocs/.htaccess
記述内容:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Apache再起動して確認
コマンド:service httpd restart
試しにhttp://mydomain.jp/
にアクセスすると、https://mydomain.jp/
になる。はず。