・当ブログはアフィリエイト広告を利用しています。

WEBサーバーと証明書

CentOS
この記事は約5分で読めます。
記事内には広告が含まれています。

またも、Webサーバーが起動失敗。
記事:Webサーバーが起動失敗 (code=exited, status=1/FAILURE) の対応では復旧できない。

スポンサーリンク

発端は

Let’s Encryptで証明書の発行をしたはずなのに、カスペルスキーが動いていると上位の承認局がカスペルスキーになってしまう。Let’s Encryptでの証明書は don-don.0am.jpwww.don-don.0am.jp で取得・発行?してる。
カスペルスキーを停止して証明書をみると s****.don-don.0am.jp と表示されるのだが、 s****. が気に入らないので修正する事にした。

設定しそうなファイルを色々さわっているうちに、証明書エラーが表示され、ついには、Webサーバーが起動しなくなった。

対応の経緯

証明書のしくみは自分で作成した証明書(オレオレ証明書)をLet’s Encryptに承認してもらい、Let’s Encrypt自身はさらに上位のルート承認局:DST Root CA X3 で承認してもらう。と個人的には理解しているのだが........
もしかしたら、Let’s Encryptが、サーバーの証明書を作成し、承認してるのかもしれない(オレオレ証明書は作らなくてもいいのかも?)
ちなみにs****.don-don.0am.jpは一番最初に自分で作成した証明書(だと思う)。Let’s
Encryptで作成した証明書ではない(はず)
試した事1
localhost.crtlocalhost.keyのみs****.don-don.0am.jpが関与したので、再度作成する事にした。
試した事2

「Let’s Encryptで作成されたcert.pem、privkey.pem、chain.pemがssl.confに指定されてないとうまく動かない」旨の記事があったので、これをヒントにトライしてみる事にした。

ssl.conf 抜粋(修正後)

# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. A new
# certificate can be generated using the genkey(1) command.
##SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/letsencrypt/live/don-don.0am.jp/cert.pem

# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you’ve both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
##SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/letsencrypt/live/don-don.0am.jp/privkey.pem

# Server Certificate Chain:
# Point SSLCertificateChainFile at a file containing the
# concatenation of PEM encoded CA certificates which form the
# certificate chain for the server certificate. Alternatively
# the referenced file can be the same as SSLCertificateFile
# when the CA certificates are directly appended to the server
# certificate for convinience.
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
SSLCertificateChainFile /etc/letsencrypt/live/don-don.0am.jp/chain.pem

試した事1、試した事2の後、systenctrl restart httpdを2度実行したら、とりあえずWebサーバーが復旧した。例によって、これで正解なのかどうかは自身がない!

変更・関連したファイル

/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/ssl.conf
/etc/httpd/conf.d/virtialhost80.conf

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

結局何が原因だったのだろう

ssl.conf に let’s Encryptで作られたcert.pem、privkey.pem、chain.pem を記載する事は確かだと思うが、試した事1local.crt等の再作成が無駄だったのか、必要だったのかは不明。

懸念事項

次のLets Encryptの証明書更新以降に証明書問題が発生しないか。(1~3か月後)

次の自己証明書更新以降に証明書問題が発生しないか。(約1年後)

コメント

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