curl で apache上のhttpsアクセスすると、SSL エラー
curl にて、
なぜかエラーが出てコンテンツが取得できないと嘆いてる人がいたので どれどれと覗き込むと
CN=R3,O=Let's Encrypt,C=US
* NSS error -8179 (SEC_ERROR_UNKNOWN_ISSUER)
* Peer's Certificate issuer is not recognized.
* Closing connection 0
とか。
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
証明書が不正だと言われる場合がある。
大抵の場合
サーバ側中間証明書が抜けている
SSLCertificateChainFile
この指定が無い事が多いので注意。
管理が別だった場合さらに最悪
ブラウザにLet’s Encryptの証明書がフルで入ってるから、気がつかない場合が多い。
nginxの場合はそもそも中間証明書の指定ができないので certbotが結合している。 コレに慣れているとapacheでズッコケます。
事を聞くと、なんでもこの開発サーバは元々nginxで立ち上がったらしいのですが、 お客さんがロシアは嫌だという事で() apacheに変更した経緯があるそうで、その後certbotがrenewしてapacheなんだよなって事になって 今回の事件になった模様。