Request: httpsエンドポイントに接続して取得:ホスト名/ IPが証明書の代替名と一致しません

作成日 2015年09月18日  ·  12コメント  ·  ソース: request/request

次のコードを使用して、ローカルホストからheroku上の外部httpsRESTサービスに接続しようとしています。

request(
            {
                url: config.get('host') +req.originalUrl,
                method: req.method,
            }, function (error, response, body) {

            })

コールバックで次のエラーが発生します。

ホスト名/ IPが証明書のaltnameと一致しません: "ホスト:localhost。は証明書のaltnameにありません:DNS:_。herokuapp.com、 DNS:herokuapp.com "
ホスト:ローカルホスト。 証明書の代替名に含まれていません:DNS:_。herokuapp.com、 DNS:herokuapp.com

ローカルにインストールされた同じサービスに接続すると、すべてが正しく機能するため、httpsに関連しているはずです。

何か助けはありますか?

最も参考になるコメント

このようなものはひどいです

全てのコメント12件

リクエストの正確なURLは何ですかconfig.get('host') +req.originalUrl

私もこれを手に入れています。 自己署名証明書を使用していますが、ホスト名チェックを実行したくありません。 私は私の要求にこれを持っています

agentOptions: {
        ca: fs.readFileSync('ca.cert.pem')
    }

ignoreHostnameをどのように設定しますか?

requireUnauthorized変数をfalseに設定しようとしましたか?

`` `` `` request({
url:config.get( 'host')+ req.originalUrl、
メソッド:req.method、
requireUnauthorized:false
}、
関数(エラー、応答、本文){

        })```

`` `` `` ``

rejectUnauthorized: falseがフロントページのドキュメントのどこかにあるといいですね。

rejectUnauthorized: falseすると、サーバー証明書を受け入れることができませんか? その場合、私はそれが有効な解決策であるとは考えていません。
証明書が信頼できるCA(私の場合は自分のCA)によって署名されていることを確認して、サーバーを確認したいと思います。 私はすべてを沈黙させてそれを不安定にしたくありません。

このようなものはひどいです

サーバー認定のCommonNameをクライアントのhostnameと一致させる必要があります。

サーバー認証のCommonNameをクライアントのホスト名と一致させる必要があります。

なぜそうなのですか? クライアントがサーバー証明書に存在する独自のホスト名を気にするのはなぜですか? これはサーバーの認証に関するものです。 ありがとう

参考までに、リクエストの転送中にこのエラーが発生しました。 request({host: 'something.com'... headers: req.headers...を使用しました。最初は、ヘッダーにhost: 'localhost'が原因であることに気づいていませんでした。 私はそれを交換しました、そして今それはOKを確認します。

私は同じ問題にぶつかっていると思います。 ノード6.10.3とリクエスト2.88を使用しているときに、次のエラーが発生します。

エラー:ホスト名/ IPが証明書の代替名と一致しません: "ホスト:https。は証明書の代替名にありません:

これをノードtls.jsコードまで追跡しました。 どういうわけか、「https」。 リクエストによってホスト名としてノードに渡されています。 requireUnauthorizedをfalseに設定すると、コードは機能します。 だから私はURLで正しいホスト名を渡しています。

これは、ターゲットドメインによって提供されるAPIキーを使用することで軽減できると思います。

参考までに、リクエストの転送中にこのエラーが発生しました。 request({host: 'something.com'... headers: req.headers...を使用しました。最初は、ヘッダーにhost: 'localhost'が原因であることに気づいていませんでした。 私はそれを交換しました、そして今それはOKを確認します。

私の問題は解決しました。 req.headerを変更してホストを変更するのを忘れました。

このページは役に立ちましたか?
0 / 5 - 0 評価