Webサーバー間通信内容暗号化導入

自宅サーバーに最適な格安SSLをFujiSSLが提供してるので導入してみました。

スポンサーリンク

申請前のCSRファイル作成

1.SSL サーバー証明書に必要な秘密鍵を生成します。

[root@miracle ~]# mkdir ssl-key

[root@miracle ~]# openssl genrsa -des3 -out ./ssl-key/ssl-miracle-serv.website.key 2048
Enter pass phrase for ./ssl-key/ssl-miracle-serv.website.key:  ←パスワード入力
Verifying - Enter pass phrase for ./ssl-key/ssl-miracle-serv.website.key:  ←パスワード入力

2.サーバー用秘密鍵からパスワード削除。(Webサーバー起動時にパスワードを要求されるため)

[root@miracle ~]# openssl rsa -in ./ssl-key/ssl-miracle-serv.website.key -out ./ssl-key/ssl-miracle-serv.website.key
Enter pass phrase for ./ssl-key/ssl-miracle-serv.website.key:  ←パスワード入力
writing RSA key

秘密鍵 “./ssl-key/ssl-miracle-serv.website.key” の作成完了。

3.CSRファイル生成

CSRファイル作成に関する注意点はこちらを確認して作成してください。⇒ 注意事項

[root@miracle ~]# openssl req -new -key ./ssl-key/ssl-miracle-serv.website.key -out ./ssl-key/ssl-miracle-serv.website.csr

コマンドを実行すると入力待ちになりますので、以下の注意点に気を付けて入力します。

※入力時の注意点(FujiSSLから抜粋)
半角の英数字64文字以内で入力してください。識別名に、以下の文字 は使用できません。! ” # $ % & ( ) * + / ; < > ? @ [ ¥ ] ^ _ ` { | } ~「&」が含まれる場合は、半角英字の and 等に置き換えてください。スペースのみの入力は控えてください。 スペースのみの入力項目がある場合、 証明書が発行されませんCSRは、emailAddressを含めないよう生成ください。emailAddress を含んだCSRを送付いただいても、 弊社発行の証明書には emailAddress は含まれません。

フィールド説明
Country Name (2 letter code)ISOによる2文字の国名の符号になります。日本国となりますので「JP」と入力してください。JP
State or Province Name (full name)組織が置かれている都道府県Tokyo
Locality Name (eg, city) [Default City]組織が置かれている市区町村Minato-ku
Organization Name (eg, company)組織の名称(個人の場合はドメインの登録者名)(個人名)
Organizational Unit Name (eg, section)組織の部門名(入力しなくても良い)
Common NameWebサーバーのコモンネイム-miracle-serv.website
Email Address入力不要
A challenge password入力不要
An optional company name入力不要
※上記の住所は例で記載しています。

入力が正常に終了するとCSRファイル “./ssl-key/ssl-mail.csr” が生成されます。

SSLサーバー証明書申込

FujiSSLストアフロント にアクセスし、必要事項を記入してください。
内容的には難しいのは特にありませんでした。
クレジット決済だと直ぐに証明書が発行されるのでお勧めです。

メールが届くので、メールに記載されたURLをクリックし、表示される【内容事項】をしっかり確認し大丈夫であれば『承認します』ボタンをクリックします。

直ぐにSSL サーバー証明書が記されたメールが届くので、以上で SSL サーバー証明書の発行手続きは完了となります。

サーバー証明書設定

1.SSLサーバー証明書

送られて来たメールの「SSLサーバ証明書は以下の通りです」の必要箇所をファイルに貼り付けます。

[root@miracle ~]# vi /etc/pki/tls/certs/ssl-miracle-serv.website.crt
-----BEGIN CERTIFICATE-----
・
・
-----END CERTIFICATE-----

2.秘密鍵のコピー

[root@miracle ~]# cp ./ssl-key/ssl-miracle-serv.website.key /etc/pki/tls/certs/ssl-miracle-serv.website.key

3.SSLサーバ中間証明書

送られて来たメールの「中間CA証明書は以下の通りです。」の必要箇所をファイルに貼り付けます。

[root@miracle ~]# vi /etc/pki/tls/certs/ssl-miracle-serv.website.crt
-----BEGIN CERTIFICATE-----
・
・
-----END CERTIFICATE-----

4.パーミッション変更

安全の為に読み書き出来るのは所有者に限定します。

[root@miracle ~]# chmod 600 /etc/pki/tls/certs/ssl-miracle-serv.website*

WebサーバーSSL設定

1.mod_sslインストール

[root@miracle ~]# dnf -y install mod_ssl

2.SSL設定

[root@miracle ~]# vi /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/ssl-miracle-serv.website.crt ← 証明書を指定
SSLCertificateKeyFile /etc/pki/tls/certs/ssl-miracle-serv.website.key ← 秘密鍵を指定
SSLCertificateChainFile /etc/pki/tls/certs/ssl-miracle-serv.website-chain.crt ← 中間証明書を指定

3.SSL Server Test対応

SSLの評価をするサイトがあるらしく、そこのテストで高評価を取る為の設定をします。

[root@miracle ~]# vi /etc/httpd/conf.d/ssl.conf ← SSL設定ファイル編集
#   SSL Protocol support:
# List the enable protocol levels with which clients will be able to
# connect.  Disable SSLv2 access by default:
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 ← SSLv2, SSLv3, TLSv1, TLSv1.1 を無効化

#SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5
#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 ← 追加
SSLHonorCipherOrder on ← 追加

Header always set Strict-Transport-Security "max-age=15768000" ← 追加
</VirtualHost>

4.httpd.confの文法チェック

[root@miracle ~]# apachectl configtest
Syntax OK

5.Apache再起動

[root@miracle ~]# systemctl restart httpd

6.動作確認

[root@miracle ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; ven>
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since Wed 2022-09-14 21:15:18 EDT; 8min ago
     Docs: man:httpd.service(8)
 Main PID: 903 (httpd)
   Status: "Running, listening on: port 80"
    Tasks: 213 (limit: 11352)
   Memory: 29.4M
   CGroup: /system.slice/httpd.service
           ├─ 903 /usr/sbin/httpd -DFOREGROUND
           ├─1114 /usr/sbin/httpd -DFOREGROUND
           ├─1116 /usr/sbin/httpd -DFOREGROUND
           ├─1117 /usr/sbin/httpd -DFOREGROUND
           └─1118 /usr/sbin/httpd -DFOREGROUND

 9月 14 21:15:17 miracle systemd[1]: Starting The Apache HTTP Server...
 9月 14 21:15:18 miracle systemd[1]: Started The Apache HTTP Server.
 9月 14 21:15:18 miracle httpd[903]: Server configured, listening on:

7.ポート開放

①ルーター設定
 TCP443番ポートの設定をしてください。
 ルーターの設定は各ルーターのマニュアルを参照してください。
 こんな便利なサイトもありますので、参考にしましょう⇒メーカー別ルーターポート開放手順

このポート開放はPPPoEルータで行います。

②iptables設定
 サーバー側のファイアウォール設定で、TCP443番ポートへのアクセスを許可するようにする。
 ファイアウォール設定はこちらを参照

8.外部アクセスチェック

Portチェックテスト【外部からのPort開放確認】で「ホスト名(FQDN) または グローバルIPアドレス」にドメイン名、「チェックポート番号」に443、「無料で・・・」にチェックを入れて「Portチェック実行」ボタンを押下、下記の表示が出ればOK!

9.アクセス確認

テストページ作成

[root@miracle ~]# echo test >> /var/www/html/index.html

https://ドメイン/test.html にアクセスし、セキュリティの警告が出なければOK!

テストページ削除

[root@miracle ~]# echo test >> /var/www/html/index.html

コメント

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