業務用エアコン関連の技術情報、エラーコード、環境問題対策に関する別サイト「エアコンの安全な修理・適切なフロン回収」
スポンサーリンク

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

スポンサーリンク
スポンサーリンク

2019Let’s Encryptとは!

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

Let’s Encryptのダウンロード

# curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto ← ダウンロード
# chmod700 /usr/bin/certbot-auto ← アクセス権限の変更

事前確認

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

# https -M

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

# yum -y install mod_ssl

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

# irewall-cmd –list-all

services: ssh http https

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

# firewall-cmd –add-port=443/tcp –zone=public
# firewall-cmd –add-port=443/tcp –zone=public –permanent

certbotのインストール

# /usr/bin/certbot-auto certonly –webroot -w /var/www/html –email test@example.com –debug -d test.example.com
Certbot クライアントの実行に必要な複数のパッケージ(依存関係にあるパッケージ)が自動的にインストールされ、仮想化された Python 環境(PyPI からダウンロードしたパッケージを動作させるための環境)が構築されます。
途中で問い合わせがあるので「y(yes)」を入力
  • dオプションでドメインを指定するが、-d example.com -d test.example.comのように複数指定できる。最初に記述したドメインがコモンネームになる。
  • 指定するすべてのドメインは、このサーバに向いたAレコードを持っていないといけない。
  • wオプションでドキュメントルートディレクトリを指定する。ドメインごとに別のドキュメントルートディレクトリを指定したいときには、-dオプションの直前に-wオプションを書けば良い。
スポンサーリンク

証明書の作成

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

サーバー証明書の確認

ls -l /etc/letsencrypt/live/[ドメイン名]/
total 4
-rw-r–r– 1 root root 543 Apr 17 17:23 README
lrwxrwxrwx 1 root root 44 Apr 17 17:23 cert.pem -> ../../archive/[ドメイン名]/cert1.pem
lrwxrwxrwx 1 root root 45 Apr 17 17:23 chain.pem -> ../../archive/[ドメイン名]/chain1.pem
lrwxrwxrwx 1 root root 49 Apr 17 17:23 fullchain.pem -> ../../archive/[ドメイン名]/fullchain1.pem
lrwxrwxrwx 1 root root 47 Apr 17 17:23 privkey.pem -> ../../archive/[ドメイン名]/privkey1.pem

Apacheへの反映

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

Apacheのインストールディレクトリーに移動後再コンパイル
# ./configure \
–with-layout=Apache \
–enable-module=auth_db \
–enable-module=so \
–enable-module=most \
–enable-mods-shared=reallyall \
–enable-rewrite \
–enable-auth_digest \
–enable-ssl  ← これが追加されている

# make
# make  install

httpd.conf ファイルの編集

Listen 0.0.0.0:443
ServerName localhost:443バーチャルホストの設定変更
<VirtualHost *:80>
ServerAdmin [メールアドレス]
ServerName [ドメイン名]
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/[ドメイン名]
ServerName [ドメイン名]
ServerAlias localhost
ErrorLog “| /usr/local/apache2/bin/rotatelogs /var/log/httpd/[ドメイン名]_error_log_%Y%m%d 86400 540″
CustomLog “| /usr/local/apache2/bin/rotatelogs /var/log/httpd/ [ドメイン名]_access_log_%Y%m%d 86400 540″ combined
<Directory “/var/www/html/[ドメイン名]“>
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/[ドメイン名]/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/[ドメイン名]/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/[ドメイン名]/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を再起動する。

error:Content is protected !!
タイトルとURLをコピーしました