2016-12-29 6 views
4
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' 

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

を促した "カール:(51)SSL: '172.17.0.1' 証明書のサブジェクト名(ローカルホスト)がターゲットホスト名と一致しない "

をした後Howerver、私は "172.17.0.1"を "localhost"に変更しました。それはうまくいって結果を得ました。

なぜですか?設定が間違っていませんか? 一方、http_access.logにはログはありません。

答えて

2

sslハンドシェイクが発生すると、クライアントはサーバー証明書を確認します。検証プロセスでは、クライアントは証明書の共通名(CN)とURLのドメイン名を一致させようとします。両方が異なる場合、ホスト名の検証は失敗します。あなたのケースでは、証明書はローカルホストとしてCNを持ち、IPアドレスを使って呼び出しようとすると失敗します。あなたが証明書を作成する場合は、デフォルトのWSO2の証明書のhttps://tersesystems.com/2014/03/23/fixing-hostname-verification/ https://support.dnsimple.com/articles/what-is-common-name/

+0

その後、公式のAPIコンソールでcurlコマンドを正常に実行できます。 私は公式のステップとしてそれを行い、wso2carbon.jksを.pemファイルに変更し、.pemファイルの内容を/etc/ssl/certs/ca-certificates.crtにコピーします。それから何が起こったのですか?彼らが同じであってもなぜうまくいかないのだろうと思う。 – mike

+0

新しいホスト名がある証明書を生成したら、どうすれば使えますか?そうではありません:証明書をca-certification.crtに入れ、.pem証明書をjksに変更して.jksファイルの内容を追加しますAPI MANAGERのwso2carbon.jksに送信しますか? – mike

2

CNlocalhostで詳細 についてCN値

として単一のホスト名/複数のホスト名/ワイルドカードのホスト名を持つことができます。したがって、要求を送信するときにホスト名としてlocalhostを使用する必要があります。そうしないと、ホスト名の検証に失敗します。他のホスト名を使用する場合は、Jenaが言及したように、そのホスト名で証明書を生成する必要があります。

+0

その後、公式のAPIコンソールはcurlコマンドを正常に実行できます。私は公式のステップとしてそれを行い、wso2carbon.jksを.pemファイルに変更し、.pemファイルの内容を/etc/ssl/certs/ca-certificates.crtにコピーします。それから何が起こったのですか?私はそれが同じであってもうまくいかなかったのはなぜだろうか – mike

+0

新しいホスト名がある証明書を生成すると、どうすれば使えますか?そうではありません:証明書をca-certification.crtに入れて変更します.pem証明書をjksに追加し、.jksファイルの内容をAPI MANAGERのwso2carbon.jksに追加しますか? – mike

+0

私はIPアドレスで起動しますか?@Bhathiya – mike

0

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

私は「http://some.example」のようなURIを要求しましたが、HTTPSのためのVARが私の後にgitのディレクトリからプルしようとしたとき、私はこの問題を抱えていた「1」

0

に設定しました。新しいSSH鍵が追加され、git repoが動いた。 gitのCNは混乱してしまった。私のための解決策は、gitディレクトリを削除してssh経由で再クローンすることでした。他のユーザーが暗示しているように、ウェブサイトの証明書のCNを変更することはできませんので、間違ったCNを持つコンピュータの設定を変更するか、httpsを使わないようにしてください。

関連する問題