Help us understand the problem. What is going on with this article?

Let's Encrypt導入前に準備すべきこと

More than 1 year has passed since last update.

リリースチェッカーというサービスを個人で運営しています。先日、HTTPS化のため、Let's Encryptのサーバ証明書を導入しました。



  • CentOS 6.10
  • httpd 2.2.15
  • certbot 0.30.0


$ cd /usr/local/bin
$ sudo wget
$ sudo chmod a+x certbot-auto
$ sudo ./certbot-auto --apache -d


1. バーチャルホストの設定

certbot-auto コマンドの初回実行時に、下記のエラーが出てしまいました。

Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.

原因はバーチャルホストで運用していなかったためです。 /etc/httpd/conf/httpd.conf<VirtualHost> ディレクティブを追加することで解消しました。

2. mod_rewriteの有効化

再度 certbot-auto コマンドを実行すると、違うエラーが出てしまいました。

Syntax error on line 1 of /etc/httpd/conf.d/le_http_01_challenge_pre.conf:
Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

原因はmod_rewriteを無効にしていたためです。 /etc/httpd/conf/httpd.conf 内の下記の行をアンコメントすることで解消しました。

#LoadModule rewrite_module modules/

3. mod_sslの設定

さらに certbot-auto コマンドを実行すると、HTTPSをリッスンするようにはなったものの、自己署名証明書が有効になってしまいました。

原因は、mod_sslのインストール時に作られた /etc/httpd/conf.d/ssl.conf<VirtualHost _default_:443> セクションが存在し、その中に下記の行があったためでした。

SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

<VirtualHost _default_:443> セクションをまるごと削除することで、Let's Encryptの証明書が有効になり、問題が解消しました。

事前にmod_sslをインストールし、 ssl.conf を編集しておくのが無難だろうと思います。

クラウドサポートアソシエイト at AWSジャパン/リリースチェッカー運営(情報処理技術者試験マニア( MENSA会員/投稿は所属先の見解ではありません。文責は個人にあります
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away