0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Axiosでオレオレ証明書エラー回避

Posted at

承前

悲しい時ー!悲しい時ー!今の現場で使ってるローカル開発環境でオレオレ証明使ってて

Got error: UNABLE_TO_VERIFY_LEAF_SIGNATURE

とか出て死ぬ時ー!

そもそも何がやりたいの

ローカル開発環境を作りたい(今まで無かったらしい。マジですか?)。DockerでNode使って建てているサーバから別のDockerコンテナのAPIサーバにリクエスト送って認証通す機能があったのですが、そのAPIサーバがオレオレ証明で上記のエラーが出てました。

環境

node: 10.23.0-alpine 古いです。変えたいです。
API側: nginx + PHP

Nodeのコードはこんな感じです。

// この"baseUrl"が"https://"付いてる
axios.post(baseUrl + "/api/something/authentication", {
    token: token,
    httpsAgent: new https.Agent({ rejectUnauthorized: false, keepAlive: true }),
}).then((response) => {
    // このloggerはconstで事前に宣言してあると思って下さい
    logger.error(response.data);
    if (response.data.result === "OK") {
        logger.info('authentication. END');
        // 認証OKなら接続を許可
        next();
    } else {
        logger.error('authorization END');
        // 認証NGなら接続を拒否
        next(new Error("not authorized."));
    }
}).catch((error) => {
    logger.error("authorization Error.");
    logger.error(error);
    // 認証リクエスト異常
    next(new Error("not authorized."));
});

うーん、通りそうに見えるけど・・・https.AgentのrejectUnauthorizedもfalseにしてるし・・・バージョンいくつだっけ?10.23.0か・・・そうか・・・・・・・・・10.23.0!!?!!?!?!!????!?ふっる!!!!今2024年ですが!?

node 10だとhttpsAgentのrejectUnauthorizedが機能しない?

ソース読んだんですけどよく分かりませんでした。optionsにそれらしき値はあったんですけどね。つよい人教えて。

//この辺
Agent.prototype.getName = function getName(options) {
  var name = HttpAgent.prototype.getName.call(this, options);

  name += ':';
  if (options.ca)
    name += options.ca;

  // ------ 中略 ------

  name += ':';
  if (options.rejectUnauthorized !== undefined)
    name += options.rejectUnauthorized;

  // ------ 中略 ------

  name += ':';
  if (options.sessionIdContext)
    name += options.sessionIdContext;

  return name;
};

どーすればいいのー!?

process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';

で、通りました。めでたし。当然これだと証明書チェックを行わないので環境変数などの値を見て切り換える対応が必要。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?