CentOSを無料でHTTPS・SSL化!Let’s Encryptの設定方法!

スポンサーリンク
050-VBA

へっぽこヘタレシステム管理者の管理人です。

CentOSにWordPressを立てるに引き続き・・・

サーバを無料で常時SSL化する方法を試してみたので、忘備録として掲載しておきます。

ちなみに、この記事の【ホスト名】と【ドメイン】は投稿のために仮に記載しております。

実際に実行するときは、インターネットから接続できる【ホスト名】・【ドメイン名】でお願いします。

【host】コマンドで名前引きができるか確認する

まずは、【host】又は【nslookup】コマンドでIPアドレスが返るか確認します。

管理人のテスト環境では・・・

ホスト名:server5

ドメイン:hogehoge.home.com

です。

host server5.hogehoge.home.com
nslookup server5.hogehoge.home.com

IPアドレスが取れない場合は、DNSの設定を見直してください。

ファイアウオールのポートを空ける

次に、ファイアウオールのポートを空けます。

firewall-cmd --add-service=https --permanent
firewall-cmd --reload

【mod_ssl】をインストール

次に【mod_ssl】をインストールします。

yum -y install mod_ssl

【apache】を再起動

【apache】を再起動します。

systemctl restart httpd

【certbot】をインストール

まずは【certbot】をインストールする為のリポジトリをインストールします。

yum -y install epel-release

次に【certbot】をインストールします。

yum -y install certbot

次に【python2-certbot-apache】をインストールします。

yum -y install python2-certbot-apache
スポンサーリンク

サーバー証明書を作成

次にサーバー証明書を作成します。

ホスト名・ドメイン名・・・

エイリアスは適宜変更してください。

certbot certonly --webroot -w /var/www/html/reservesys -d server5.hogehoge.home.com

対話型で処理が進みますので・・・

適宜メールアドレスを入力してください。

選択は【Y】でOKです。

サーバー証明書ファイルの確認

次のフォルダにサーバー証明書ファイルができますので確認します。

/etc/letsencrypt/live/server5.hogehoge.home.com

次のファイルができているはずです。

  • cert.pem :サーバー証明書本体
  • chain.pem :中間証明書
  • privkey.pem :秘密鍵ファイル
  • fullchain.pem :サーバー証明書と中間証明書のセット

 Apache httpdへSSL通信用の設定を行う

次にSSL通信用の設定を行います。

スポンサーリンク

設定するファイルは

【/etc/httpd/conf.d/ssl.conf】

です。

変更する内容は次のとおりです。

SSLCertificateFile /etc/letsencrypt/live/server5.hogehoge.home.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/server5.hogehoge.home.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/server5.hogehoge.home.com/chain.pem

次のコマンドでファイルの設定が正しいか確認します。

httpd -t

ブログランキングにご協力ください!
ブログランキング・にほんブログ村へ

Syntax OK と出ればOKです。

httpdを再起動します。

systemctl restart httpd

SSL通信の確認

ブラウザでSSL通信が出来ているか確認します。

証明書の自動更新

証明書の自動更新を設定します。

手動更新の場合は次のコマンドです。

certbot renew --dry-run

しかし面倒なので自動更新を設定します。

次のコマンドを入力します。

crontab -e

エディタが開きますので例えば次のとおりに入力します。

00 5 * * * certbot renew -q --deploy-hook "systemctl restart httpd"

上の例では、毎日5時に更新となります。

00 04 01 * * certbot renew -q --deploy-hook "systemctl restart httpd"

上の例では、毎月1日の4時に自動更新となります。

【*】の設定で更新間隔を設定できます。

次のコマンドで自動更新が設定されているか確認します。

 crontab -l

設定した内容が表示されればOKです。

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

コメント

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