ヘルプ:バーチャルホストの通信内容暗号化にFujiSSLを導入(AlmaLinux)
メインページ > ヘルプ:目次 > ヘルプ:自宅サーバー構築(AlmaLinux) > バーチャルホストの通信内容暗号化にFujiSSLを導入(AlmaLinux)
- すでに稼働しているWebサーバー(Apache)にバーチャルホストの設定を行ったので忘れないために書いておく。
- Webサーバー間通信内容暗号化にFujiSSLを導入(CentOS8)導入済みとする。
FujiSSL から SSL サーバー証明書を取得する
まず、申請に必要な CSR ファイルの作成から行います。
秘密キーの生成
SSL サーバー証明書に必要な秘密鍵を生成する。
[root@host4 ~]# mkdir ssl-key [root@host4 ~] openssl genrsa -des3 -out ./ssl-key/ssl-awajp.com.key 2048 ・ ・ Enter pass phrase for ./ssl-key/ssl-awajp.com.key: ← 任意のパスワードを応答※表示はされない Verifying - Enter pass phrase for ./ssl-key/ssl-awajp.com.key: ← 任意のパスワードを応答※表示はされない
Webサーバー起動時にパスワードを要求されないようにするためサーバー用秘密鍵からパスワード削除。
[root@host4 ~]# openssl rsa -in ./ssl-key/ssl-awajp.com.key -out ./ssl-key/ssl-awajp.com.key Enter pass phrase for ./ssl-key/ssl-awajp.com.key: ← サーバー用秘密鍵・証明書作成時のパスワード応答※表示はされない writing RSA key
このようにすることで、SSL サーバー証明書に必要な秘密鍵を "./ssl-key/ssl-awajp.com.key" として生成することができました。秘密鍵が生成できたら、それを用いて CSR ファイルを生成します。
CSRファイルを生成
秘密鍵が生成できたら、それを用いて CSR ファイルを生成します。
※入力には以下の点にご注意ください。
半角の英数字64文字以内で入力してください 識別名に、以下の文字 は使用できません ! ” # $ % & ( ) * + / ; < > ? @ [ ¥ ] ^ _ ` { | } ~ 「&」が含まれる場合は、半角英字の and 等に置き換えてください スペースのみの入力は控えてください。 スペースのみの入力項目がある場合、 証明書が発行されません CSRは、emailAddressを含めないよう生成ください。 emailAddress を含んだCSRを送付いただいても、 弊社発行の証明書には emailAddress は含まれません。
[root@host4 ~]# openssl req -new -key ./ssl-key/ssl-sudachi.jp.key -out ./ssl-key/ssl-sudachi.jp.csr
フィールド | 説明 | 例 |
---|---|---|
Country Name (2 letter code) | 国を示す2文字のISO略語 | JP |
State or Province Name (full name) | 組織が置かれている都道府県 | Tokushima |
Locality Name (eg, city) [Default City] | 組織が置かれている市区町村 | Tokushima-shi |
Organization Name (eg, company) | 組織の名称(個人の場合はドメインの登録者名) | awajp.com |
Organizational Unit Name (eg, section) | 組織の部門名(入力しなくても良い) | System |
Common Name | Webサーバーのコモンネイム | awajp.com |
Email Address | 入力不要 | |
A challenge password | 入力不要 | |
An optional company name | 入力不要 |
これで、先ほど作成した秘密鍵に対応した CSR ファイル "./ssl-key/ssl-mail.csr" の生成できました。これをもって、SSL サーバー証明書の取得申請を行う運びとなります。
バーチャルホスト設定
バーチャルホスト用ドキュメントルートディレクトリ作成
- 全ての、ドメイン名で作成。
[root@host4 ~]# mkdir /var/www/html/sudachi.jp [root@host4 ~]# mkdir /var/www/html/awajp.com
ディレクトリの所有者変更
- 全ての、ドメイン名の社有車変更。
[root@host4 ~]# chown -R sysop. /var/www/html/
未定義ホスト用バーチャルホスト設定ファイル作成
※バーチャルホスト未定義ホスト名でアクセス時にアクセスを拒否する
[root@host4 ~]# vi /etc/httpd/conf.d/virtualhost-00.conf <VirtualHost _default_:80> ServerName any <Location /> Require all denied </Location> </VirtualHost>
メインホスト用バーチャルホスト設定ファイル作成
[root@host4 ~]# vi /etc/httpd/conf.d/virtualhost-sudachi.jp.conf <VirtualHost *:80> ServerName sudachi.jp DocumentRoot /var/www/html/sudachi.jp </VirtualHost>
追加ホスト用バーチャルホスト設定ファイル作成
[root@host4 ~]# vi /etc/httpd/conf.d/virtualhost-awajp.com.conf <VirtualHost *:80> ServerName awajp.com DocumentRoot /var/www/html/awajp.com ErrorLog logs/awajp.com-error_log CustomLog logs/awajp.com-access_log combined env=!no_log </VirtualHost>
Webサーバー再起動
[root@host4 ~]# systemctl restart httpd
暗号化通信用バーチャルホスト設定
サーバー証明書取得
追加ホストについて、サーバー証明書(Certbot)の「サーバー証明書取得」を実施。
メインホスト用バーチャルホスト設定
ファイル編集
[root@host4 ~]# vi /etc/httpd/conf.d/virtualhost-sudachi.jp.conf <VirtualHost *:80> ServerName sudachi.jp DocumentRoot /var/www/html/sudachi.jp # SSL通信にリダイレクト RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </VirtualHost>
/etc/httpd/conf.d/ssl.confの<VirtualHost _default_:443>~</VirtualHost>をコピーしてここに貼り付けて下記のみ修正
<VirtualHost *:443> ← *に変更 DocumentRoot "/var/www/html/sudachi.jp" ← メインホスト用ドキュメントルートを指定 ServerName sudachi.jp:443 ← メインホストサーバー名を指定
追加ホスト用バーチャルホスト設定
ファイル編集
[root@host4 ~]# vi /etc/httpd/conf.d/virtualhost-awajp.com.conf <VirtualHost *:80> ServerName awajp.com DocumentRoot /var/www/html/awajp.com ErrorLog logs/awajp.com-error_log CustomLog logs/awajp.com-access_log combined env=!no_log # SSL通信にリダイレクト RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </VirtualHost> <VirtualHost *:443> Protocols h2 http/1.1 ServerName awajp.com:443 ← 追加ホストサーバー名を指定 DocumentRoot "/var/www/html/awajp.com" ← 追加ホスト用ドキュメントルートを指定 ErrorLog logs/awajp.com-error_log ← 追加ホスト用SSLエラーログファイル名を指定 CustomLog logs/awajp.com-access_log combined env=!no_log ← 追加ホスト用SSLアクセスログファイル名を指定 Alias /awstatsreport /var/www/html/awajp.com/awstatsreport <Location "/awstatsreport"> Require all denied Require ip 127.0.0.1 Require ip 192.168.1.0/24 </Location> # SSL Engine Switch: SSLEngine on ## SSL Protocol support: # SSLv2, SSLv3, TLSv1, TLSv1.1 を無効化 SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 ## SSL Cipher Suite: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 ## Speed-optimized SSL Cipher configuration: SSLHonorCipherOrder on SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS ## Server Certificate: SSLCertificateFile /etc/pki/tls/certs/ssl-awajp.com.crt ← 追加ホスト用公開鍵を指定 ## Server Private Key: SSLCertificateKeyFile /etc/pki/tls/certs/ssl-awajp.com.key ← 追加ホスト用秘密鍵を指定 ## Server Certificate Chain: SSLCertificateChainFile /etc/pki/tls/certs/ssl-awajp.com-chain.crt ← 追加ホスト用中間証明書を指定 ## SSL Protocol Adjustments: BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 Header always set Strict-Transport-Security "max-age=15768000" </VirtualHost>
ssl.conf編集
[root@host4 ~]# vi /etc/httpd/conf.d/ssl.conf --削除(ここから)-- <VirtualHost _default_:443> ・ ・ ・ </VirtualHost> --削除(ここまで)--
「httpd.conf」の文法チェック
[root@host4 ~]# apachectl configtest Syntax OK
Webサーバー再起動
[root@host4 ~]# systemctl restart httpd
動作確認
[root@host4 ~]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since 土 2017-05-06 13:45:58 JST; 46s ago Docs: man:httpd(8) man:apachectl(8) Process: 29305 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 29311 (httpd) Status: "Total requests: 9; Current requests/sec: 0.111; Current traffic: 1.3KB/sec" CGroup: /system.slice/httpd.service ├─29311 /usr/sbin/httpd -DFOREGROUND ├─29312 /usr/sbin/httpd -DFOREGROUND ├─29313 /usr/sbin/httpd -DFOREGROUND ├─29314 /usr/sbin/httpd -DFOREGROUND ├─29315 /usr/sbin/httpd -DFOREGROUND ├─29316 /usr/sbin/httpd -DFOREGROUND ├─29317 /usr/sbin/httpd -DFOREGROUND ├─29318 /usr/sbin/httpd -DFOREGROUND ├─29322 /usr/sbin/httpd -DFOREGROUND ├─29323 /usr/sbin/httpd -DFOREGROUND └─29324 /usr/sbin/httpd -DFOREGROUND 5月 06 13:45:57 host3.sudachi.jp systemd[1]: Starting The Apache HTTP Server... 5月 06 13:45:58 host3.sudachi.jp systemd[1]: Started The Apache HTTP Server.