「エアコンの安全な修理・適切なフロン回収」はこちら

Let's EncryptをCentOS7.6に導入SSL化

1.Let's Encryptとは!

Webサイトの開発などのために、ローカルネットワークに設置したサーバのSSL/TLSサーバ証明書を用意する場合、今までは自己証明書を発行して利用していました。
警告が出るなどの多少の不具合を気にしなければ自己証明書を利用することで事足りていたのですが、ブラウザ通知機能を使う際には、承認された認証局が発行した証明書であることが求められるため、自己証明書だけではエラーになってしまいます。自己認証局の証明書を各ブラウザにインストールするとエラーを回避することができるのですが、検証対象の全てのブラウザにインストールする必要があったり、スマホやタブレットの場合はインストールできないこともあります。
これらの事態を解消するには、有償のSSL/TLSサーバ証明書発行サービスを利用するしかありませんでした。
しかし最近では、Let’s Encryptによる無償のSSL/TLSサーバ証明書発行サービスが利用できるようになりました。今回はこのサービスを利用して、SSL/TLSサーバ証明書を取得してCentOS7.6に導入します。

2.Let's Encryptのダウンロード

ダウンロード

アクセス権限の変更

3.事前確認

1)Apacheのモジュール「mod_ssl」が必要です。インストールされているかどうかを確認します

2)リストに「ssl_module (shared)」があれば問題なしですが、無い場合には以下のようにしてインストールします。

3)ファイアウォール設定でhttps用の443番ポート通過が許可されている必要があるので確認します。

「services」に「https」の記述があれば問題なし。
もし、まだ未設定の場合は次を実施して443番ポート通過を許可する。

4.certbotのインストール

  • dオプションでFQDNを指定するが、-d example.com -d test.example.comのように複数指定できる。最初に記述したFQDNがコモンネームになる。
  • 指定するすべてのFQDNは、このサーバに向いたAレコードを持っていないといけない。
  • wオプションでドキュメントルートディレクトリを指定する。FQDNごとに別のドキュメントルートディレクトリを指定したいときには、-dオプションの直前に-wオプションを書けば良い。

5.証明書の作成

certbotのインストール後対話型で証明書の作成が始まります

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

管理者メールアドレスを「Let’s Encrypt」パートナーに公開しない「No」を選択
Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: No

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

6.サーバー証明書の確認

7.Apacheへの反映

Apacheを再コンパイルしますので、次のページも参照して下さい(ssl.confは利用しません)

Apacheのインストールディレクトリーに移動後再コンパイル

httpd.conf ファイルの編集
Listen 0.0.0.0:443
ServerName localhost:443

バーチャルホストの設定変更
<VirtualHost *:80>
ServerAdmin [メールアドレス] ServerName [FQDN] ServerSignature Off
RewriteEngine On
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent] ErrorLog /var/log/httpd/redirect.error.log
LogLevel warn
ErrorDocument 404 /
</VirtualHost><VirtualHost *:443>
SSLEngine on
DocumentRoot /var/www/html/[FQDN] ServerName [FQDN] ServerAlias localhost
ErrorLog "| /usr/local/apache2/bin/rotatelogs /var/log/httpd/[FQDN]_error_log_%Y%m%d 86400 540"
CustomLog "| /usr/local/apache2/bin/rotatelogs /var/log/httpd/ [FQDN]_access_log_%Y%m%d 86400 540" combined
<Directory "/var/www/html/[FQDN]">
Options Indexes Includes FollowSymLinks MultiViews ExecCGI
Require all granted
#Allow from all
AddHandler server-parsed .html
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</Directory>
SSLCertificateFile /etc/letsencrypt/live/[FQDN]/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/[FQDN]/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/[FQDN]/chain.pem
Include /opt/eff.org/certbot/venv/lib/python2.7/site-packages/certbot_apache/options-ssl-apache.conf
</VirtualHost>LoadModule socache_shmcb_module modules/mod_socache_shmcb.so ← 追加
LoadModule rewrite_module modules/mod_rewrite.so ← 追加
LoadModule ssl_module modules/mod_ssl.so ← 追加

Apacheを再起動する。

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