うまいぼうぶろぐ

linuxとhttpdとperlのメモ

curlでSSLの証明書が正しいか確認する

ブラウザで証明書見るよりこっちのほうが簡単かも。中間証明書がおかしい、証明書期限が切れている、Common Nameがマッチしないなどの場合警告が出る。警告を無視して確認する場合は--insecureをつければいい。

中間証明書がおかしい

$ curl https://www.example.com/
url: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

Common Nameがおかしい

https://secure.exmaple.com/のサイトに、www.exmaple.comのhostヘッダでアクセスするような例。

$ curl https://www.example.com/
curl: (51) SSL: certificate subject name 'secure.example.com' does not match target host name 'www.example.com'