(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Linux】curlコマンドで自己署名のサーバ証明書の有効性を確認する手順

スポンサーリンク

やりたいこと

オレオレ証明書として発行したサーバ証明書を配置したシステムに対してcurlで疎通確認を行う。
尚、同通信において同証明書をルート証明書として利用する。

環境情報
  • curl 7.29.0
  • RHEL 7

やり方

以下のような自己証明書があったとした場合は

$ openssl x509 -text -noout -in test.crt
Certificate:
...
        Issuer: CN = test.com
        Validity
...
        Subject: CN = test.com
...

cacertオプションでファイルを指定することで

# curl https://test.com -v --cacert test.crt

接続ができる。

* About to connect() to test.com port 443 (#0)
*   Trying 10.X.X.X...
* Connected to test.com (10.X.X.X...) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: tls.crt
  CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
*       subject: CN=test.com
...
*       issuer: CN=test.com
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: test.com
> Accept: */*
...

同ファイルを指定しない場合はデフォルト情報がCAfileとして読み込まれて

*   CAfile: /etc/pki/tls/certs/ca-bundle.crt

証明書エラーとなる。

* NSS error -8172 (SEC_ERROR_UNTRUSTED_ISSUER)
* Peer's certificate issuer has been marked as not trusted by the user.
* Closing connection 0
curl: (60) Peer's certificate issuer has been marked as not trusted by the user.

以下、補足です。

補足

以下の記事でも取り上げたオレオレ証明書を利用する場合は

クライアント側に同証明書をCAfileとして取り込んでもらう必要があります。

以上です。