web-dev-qa-db-ja.com

「証明書のサブジェクト名がターゲットのホスト名と一致しません」というエラーを解決するにはどうすればよいですか?

  curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 90d2c018-73d1-324b-b121-a162cf870ac0' 'https://172.17.0.1:8243/V1.0.2/stock/getNA?name=te'

端末のプロンプト

「curl:(51)SSL:証明書のサブジェクト名(localhost)がターゲットホスト名 '172.17.0.1'と一致しません」

しかし、「172.17.0.1」を「localhost」に変更した後、機能し、結果が得られました。

どうして ?どこかに間違った構成はありませんか?一方、http_access.logにはログがありません。

7
mike

SSLハンドシェイクが発生すると、クライアントはサーバー証明書を検証します。検証プロセスで、クライアントは証明書の共通名(CN)をURLのドメイン名と一致させようとします。両方が異なる場合、ホスト名の検証は失敗します。あなたの場合、証明書にはローカルホストとしてCNがあり、IPアドレスを使用して起動しようとすると失敗します。証明書を作成するとき、CN値として単一のホスト名/複数のホスト名/ワイルドカードホスト名を使用できます

詳細については https://tersesystems.com/2014/03/23/fixing-hostname-verification/https://support.dnsimple.com/articles/what-is-共通名/

4
Jenananthan

デフォルトのwso2証明書のCNlocalhostです。したがって、リクエストを送信するときにホスト名としてlocalhostを使用する必要があります。そうでない場合、ホスト名の検証は失敗します。他のホスト名を使用する場合は、Jenaが述べたように、そのホスト名で証明書を生成する必要があります。

2
Bee

これはかなり前のことかもしれません。しかし、私は実際にこの問題を抱えており、修正を取得しました。これが誰かを助けることを願っています:

' http://some.example 'のようなURIをリクエストしていましたが、HTTPSの変数は '1'に設定されていました

1
Shia Masaki

新しいSSHキーを追加してgitリポジトリを移動した後、gitディレクトリからプルしようとしたときにこの問題が発生しました。争いの中で、gitのCNは混乱しました。私にとっての解決策は、gitディレクトリを削除し、ssh経由で再クローンすることでした。他のユーザーが示唆したように、Webサイトの証明書のCNを変更することはできません。そのため、間違ったCNを持つコンピューターの設定を変更するか、httpsの使用を避ける必要があります(そして、私と同じようにsshを使用します)。

0
user4757074