logo
github
cover-image

Node.js で WebAPI 叩いたら自己証明書に文句を付けられた時の対処法

2021.10.18 - 2021.12.5

システムの開発中など、ローカルに WebAPI 用のサーバを立てた経験、ありますよね? 最近は Docker でサクッと立ち上がるケースが増えてきて、こんなに簡単で良いのだろうかと思ってしまう程です。本当に良い時代になりました。

今回は、サーバも準備できたし動作確認しよう!と思って WebAPI を叩いた時に発生しがちなエラーの回避方法を紹介します。

エラー内容

Node.js からローカルサーバの WebAPI( HTTPS )をコールした際に、以下のエラーが発生する。

DEPTH_ZERO_SELF_SIGNED_CERT

エラー原因

ローカルサーバの WebAPI レスポンスの署名が、自己証明書(通称オレオレ証明書)によるものであるため。

対処法

Node.js の環境変数に以下を設定すると署名のチェックがスキップされ、エラーが発生しなくなります。あくまで環境変数なので、 .env などに記述しても良いでしょう。

typescript
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'

*この設定は HTTPS の安全性を失う設定なので、ローカル開発環境でのみ設定が有効になるよう、予め工夫しておくことがポイントです。Node.js 公式が「強く推奨していない」設定です。

参考リンク

Command-line API | Node.js v16.20.2 Documentation
Node.js About this documentation Usage and example Assertion testing Asynchronous context tracking Async hooks Buffer C++ addons C/C++ addons with Node-API C++ embedder API Child processes Cluster Co...
No Image

Related posts

レベル別プログラマの特徴まとめ
独断と偏見で、プログラマをレベル付けして特徴をまとめました。
thumbnail
Alpine Linux の Docker イメージで動的に環境変数を設定するベストプラクティス
Dockerfile を書いていると、「 aarch64 の場合だけ」のように特定の条件を満たす時に環境変数を設定したい場合がありますよね。しかし Dockerfile としてビルド時の分岐がそもそもサポートされていないので、今回はそのような場合に有効な Dockerfile の作成方法を紹介します
thumbnail
Docker の Redis イメージに初期データをロードするベストプラクティス
ローカル環境で動作を確認しながら開発していると、サクッとデータベースに接続したくなるタイミングが割とすぐに来ますよね。AWS などの PaaS で立ち上げても良いのですが、やはりローカル開発ならローカルで済むに越したことはありません。さらに、頻繁にデータを入れ替えたりする場合は AWS だと逆に手間
thumbnail
Next.js に Google Analytics を導入する際のベストプラクティス
Web サイトに対してアクセス解析を行う場合、一般的には Google Analytics を利用します。今回は Next.js で作成した Web サイトに Google Analytics を導入する方法について紹介します。
thumbnail