Let'sEncryptでSSL通信のをする (CentOS7 & Apache2.4)

2018年1月よりClientエラーが出るようになりました。こちらのリンクを参考にエラーを回避してください。 Let's Encryptを導入しようとしたら Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA. って出た - tomomik’s blog

約1週間ぶりの更新ですが、セキュアなサーバー構築の参考になれば幸いです。

Let'sEncryptは無料で使えるSSL通信の認証局です。

今回は下記のような環境でSSL接続を試みます。

Certbotの環境準備

# sudo yum install epel-release
# sudo yum install certbot python-certbot-apache

上記2つをインストールしてください。

SSL/TLS証明書作成

# sudo certbot certonly

上記のコマンドを入力
対話形式でのSSL設定が開きますので、ガイダンスに沿って選択していけば設定できます。

設定方法を選択

f:id:Flopper:20170831022549j:plain

今回はcertbot-apacheをインストールしたので1番目を選択します。

f:id:Flopper:20170831022558j:plain ドメインを聞かれますのでwwwから始まるドメインを入力します。

※この画面の前に"メールアドレス"や"利用規約に同意するか?"や"Electronic Frontier Foundation(EFF)とメールアドレスを共有するか?"などの項目が出るのでガイダンスに従って入力と同意を行ってください。EFFについてはNoでも構いません。

完了

f:id:Flopper:20170831022614j:plain

このように出れば基本設定はOKです。

次にApacheの設定をします。

(/etc/httpd/conf.d/ssl.conf)

...
SSLCertificateFile /etc/letsencrypt/live/[サーバーのドメイン]/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/[サーバーのドメイン]/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/[サーバーのドメイン]/chain.pem
...

それぞれをwwwから始まるドメイン名に変更したらApacheを再起動し、firewalldの設定でhttpsの通信を許可し、リロードしましょう。

# systemctl start httpd
# firewall-cmd --add-service=https --zone=public --permanent
# firewall-cmd --reload

これでhttps接続ができるはずです。

これでも見れなかった場合、certbotを起動してみましょう。

#sudo certbot

またガイダンスに沿っていくとsslの再発行を聞かれるますが、不要なので1でokです。 f:id:Flopper:20170831022605j:plain

httpsで接続してみましょう。