こんにちは!頼れる先輩エンジニアの「陽(ハル)」です。
開発現場に入って、最初に任されることが多い「APIの動作確認」や「ローカル環境でのAPI開発」。そんな時、多くの先輩たちが愛用している超優秀なAPIクライアントツールが「Insomnia(インソムニア)」です。
しかし、意気揚々とインストールして「さあ、APIを叩くぞ!」とリクエストを送った瞬間、画面に非情な赤いエラー文字が表示されて立ち尽くしたことはありませんか?
> “Error: SSL peer certificate or SSH remote key was not OK”
> “Error: Could not resolve host”
「ブラウザからはアクセスできるのに、なぜInsomniaからはエラーになるの?」
「社内のプロキシ環境のせい? それとも自分で作った『自己署名証明書(オレオレ証明書)』のせい?」
安心してください。これは誰もが一度は通る「ネットワークとセキュリティの洗礼」です。
この記事では、新しくInsomniaを使い始めるあなたに向けて、ツールの基本的な使い方から、社内プロキシやSSL証明書エラーで絶対に詰まらないための「回避術と設定の極意」までを、どこよりも優しく、かつ実践的に解説します。
これをマスターすれば、毎日のAPI開発とテストが劇的にラクになり、トラブルにも動じない一歩リードしたエンジニアになれますよ。さあ、一緒に一歩を踏み出しましょう!
—
1. 基礎知識:なぜ社内ネットやローカル開発でAPIリクエストが失敗するのか?
具体的な設定に入る前に、まずは「なぜエラーが起きるのか」という仕組みを、頭の中でイメージできるように整理しておきましょう。
① プロキシ(Proxy)という「関所」の存在
多くの企業(特にセキュリティが厳しい社内ネットワーク)では、PCが直接インターネットに接続することを禁止しています。代わりに「プロキシサーバー」という関所を経由して外の世界と通信します。
Insomniaに「この関所を通ってね」と教えてあげないと、リクエストは社外のAPI(GitHubや外部サービスなど)に届きません。
② SSL/TLS証明書という「身分証明書」の不一致
HTTPS通信(暗号化された通信)を行うとき、サーバーは「私は本物です」という「SSL証明書」を提示します。
しかし、ローカル開発環境(あなたのPC上)で動かすAPIサーバーや、社内のテストサーバーでは、信頼できる機関が発行した本物の証明書ではなく、自分で作った「自己署名証明書(通称:オレオレ証明書)」を使うことが一般的です。
Insomniaは非常に優秀で安全なツールなので、「この証明書、怪しい(身元が保証されていない)から通信を遮断します!」と親切に守ってくれているのです。これがエラーの正体です。
—
2. Insomniaのセットアップと「Hello World」
まずは基本中の基本、ツールの準備と最初のAPIリクエスト(Hello World)を成功させて、Insomniaの便利さを体感してみましょう。
インストール
1. [Insomniaの公式サイト](https://insomnia.rest/) にアクセスします。
2. お使いのOS(Windows / macOS / Linux)に合わせたインストーラーをダウンロードし、インストールします。
最初の「Hello World」リクエスト
今回は、誰でも自由にテストAPIを叩ける便利なサービス `JSONPlaceholder` を使って、リクエストの送信テストを行います。
1. プロジェクトの作成:
Insomniaを起動したら、左上の「Create」または「+」ボタンを押し、「Request Collection」(リクエストのまとまり)を新規作成します。名前は「My First API」としましょう。
2. リクエストの作成:
作成したコレクションの中で「New Request」をクリックします。
- Name: `Get Users`
- Method: `GET` (デフォルト)
- 「Create」をクリックします。
3. URLの入力:
画面上部のアドレスバーに、以下のテスト用URLを貼り付けます。
https://jsonplaceholder.typicode.com/users/1
4. 送信(Send):
右側にある青い「Send」ボタンをクリックします。
うまくいくと、右側のペイン(結果画面)に以下のようなユーザー情報(JSONデータ)がきれいに整列して表示されます。STATUSが `200 OK` になっていれば大成功です!
{
“id”: 1,
“name”: “Leanne Graham”,
“username”: “Bret”,
“email”: “Sincere@april.biz”
}
まずはここまで、正常に通信ができる基本形を確認できましたね。
—
3. SSL証明書エラーを華麗にバイパスする2つのアプローチ
ローカル開発で `https://localhost:3000/api` のような自作APIを叩こうとしたとき、高確率で以下のようなエラーに遭遇します。
> “Error: SSL peer certificate or SSH remote key was not OK”
このエラーを解決するための、実務で使える2つのアプローチを紹介します。
アプローチA:【お急ぎ用】グローバルでSSL検証をオフにする(推奨度:中)
ローカル開発中だけ手っ取り早くエラーを消したい場合に有効な、最も簡単な方法です。
1. 画面右上(または左上メニュー)の歯車マーク(Preferences / 設定)をクリックします。
(ショートカット: Macは `Cmd + ,`、Windowsは `Ctrl + ,`)
2. 「General」タブを開きます。
3. 下にスクロールし、「Validate SSL Certificates(SSL証明書を検証する)」という項目のトグルスイッチをオフ(無効)にします。
これで、Insomniaは「自己署名証明書」であっても警告を無視して通信を通すようになります。
> ⚠️ 先輩からの注意点:
> この設定はすべての通信に対してSSL検証をオフにします。本番環境のAPIに対してリクエストを送る際は、通信の安全性を確保するために必ずオンに戻すようにしてくださいね。
—
アプローチB:【プロの技】特定のCA証明書を登録する(推奨度:高)
「セキュリティ設定を丸ごとオフにするのは怖い」「社内の独自認証局(CA)の証明書を正しく使いたい」という場合は、Insomniaに証明書を直接インポートするのが正攻法であり、最も安全です。
1. 設定(Preferences)を開きます。
2. 「Certificates」タブを選択します。
3. 「CA Certificate(CA証明書)」の項目にある「Choose File」をクリックします。
4. 社内やローカル開発で使用しているルート証明書(拡張子が `.pem` や `.crt` のファイル)を選択してアップロードします。
これで、Insomniaはその証明書を「信頼できるもの」として認識するため、セキュリティ強度を落とすことなく、エラーを回避できます。実務でドメインの安全性を保ちたい場合は、ぜひこちらを選択してください。
—
4. 社内プロキシ環境を突破する設定術
さて、次なる砦は「社内プロキシ」です。
「ブラウザではネットが見られるのに、InsomniaでAPIを叩くとタイムアウト(接続エラー)になる」という場合は、プロキシの設定が必要です。
基本設定:システムプロキシを使用する
Insomniaは、OS(WindowsやmacOS)が設定しているプロキシ設定を自動的に引き継ぐ機能を持っています。
1. 設定(Preferences)を開き、「Proxy」タブを選択します。
2. 「Use System Proxy」のチェックがオンになっていることを確認します。
基本的にはこれだけで通信が通るようになりますが、社内環境によっては自動認識がうまくいかないことがあります。その場合は、次の「手動設定」を行います。
手動設定:プロキシを手動で指定する
1. Proxyタブ内の「Enable Proxy」にチェックを入れます。
2. HTTP Proxy と HTTPS Proxy の入力欄に、社内のプロキシサーバー情報を入力します。
// 一般的なプロキシの書き方(例)
http://proxy.your-company.co.jp:8080
認証付きプロキシ(IDとパスワードが必要な場合)
もしプロキシを通るのにユーザー名とパスワードが必要な場合は、以下のようにURLの中に直接埋め込みます。
// 認証情報の埋め込み例
http://username:password@proxy.your-company.co.jp:8080
※ パスワードに `@` や `:` などの特殊文字が含まれている場合は、パーセントエンコーディング(例:`@` を `%40` に変換)する必要がある点に注意してください。
—
💡 超重要:ローカル開発を壊さないための「No Proxy(プロキシ除外)」設定
ここが一番のハマりポイントです。
プロキシを設定すると、すべての通信が社外のプロキシサーバーを経由しようとします。この状態で、自分のPC上で動かしているローカルサーバー(`localhost` や `127.0.0.1`)にリクエストを送るとどうなるでしょうか?
リクエストが社外のプロキシに送られ、プロキシサーバーから「そんなローカルアドレスは知らないよ」とエラーを返されてしまいます。
これを防ぐために、必ず「No Proxy(プロキシを通さないアドレス)」を設定しましょう。
1. Proxyタブの 「No Proxy」 の入力欄を探します。
2. 以下のように、ローカルを指すアドレスをカンマ区切りで入力します。
localhost, 127.0.0.1, 192.168., .local
これで、「外の世界のAPIに行く時はプロキシを通り、自分のPC(ローカル)に送る時はプロキシをバイパスする」という完璧なルーティングが完成します!
—
5. 詰まったときの「トラブルシューティング・フロー」
設定したはずなのに動かない…そんなときは、焦らず以下のフローチャートに沿って確認してみましょう。
[リクエストが失敗した!]
│
├──► 1. エラー内容は?
│ ├──► SSL関連のエラー(SSL_ERROR_…)
│ │ └─► 対策:SSL検証を一時的に「オフ」にしてみる(設定 -> General)
│ │
│ └──► 接続タイムアウト / Could not resolve host
│ └─► 対策:プロキシ設定(Proxy)を確認する
│
├──► 2. 送信先はローカル環境(localhost)?
│ └─► YESの場合:
│ └─► 対策:No Proxyに「localhost」や「127.0.0.1」が入っているか確認
│
└──► 3. そもそもPC自体がネットに繋がっている?
└─► 対策:ブラウザで適当なサイトを開いて確認。VPNの接続状況もチェック!
—
まとめ:道具を乗りこなして、快適な開発ライフを!
お疲れ様でした!
一見難しそうに見える「プロキシ」や「SSL証明書」の問題も、仕組みを理解してInsomniaの設定を少し調整してあげるだけで、驚くほどあっさりと解決できたのではないでしょうか。
今回学んだ知識は、Insomniaだけでなく、今後VS Codeの拡張機能や他のツール(PostmanやcURLコマンドなど)を触る際にも、全く同じ考え方で応用できます。ネットワークの知識は、エンジニアとしての基礎体力です。
これでもう、開発環境のネットワークエラーに怯える必要はありません。
快適な環境を手に入れたあなたなら、これからのAPI開発がもっと楽しく、スマートに進められるはずですよ。
もし周りで同じように「通信が通らない!」と困っている同期や後輩がいたら、今度はあなたが優しく教えてあげてくださいね。
あなたのエンジニアライフが、より素晴らしいものになりますように!