Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】CURLOPT_PINNEDPUBLICKEY定数の使い方

CURLOPT_PINNEDPUBLICKEY定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

CURLOPT_PINNEDPUBLICKEY定数は、PHPのcURL拡張機能でSSL/TLS通信のセキュリティを強化するための公開鍵ピンニングを設定する際に使用します。公開鍵ピンニングは、接続先のサーバーが提示する公開鍵と、あらかじめ登録された信頼できる鍵を照合することで、中間者攻撃などのセキュリティ脅威から通信を保護する仕組みです。

この定数には、信頼する公開鍵の情報を文字列として指定します。指定方法は主に二通りあります。一つは、公開鍵を含むPEM形式またはDER形式の証明書ファイルへのパスです。もう一つは、検証したい公開鍵のSPKI(Subject Public Key Info)のSHA256ハッシュ値を直接指定する方法です。ハッシュ値を指定する際は、「sha256//」というプレフィックスに続けて、Base64でエンコードされたSHA256ハッシュ値を記述します。複数の公開鍵を信頼する場合には、これらをセミコロン(;)で区切って列挙できます。

CURLOPT_PINNEDPUBLICKEYが設定されている場合、cURLは接続先のサーバーの公開鍵と、このオプションで指定された情報を照合します。サーバーの公開鍵が、指定されたいずれの鍵とも一致しない場合、cURLは接続を拒否します。これにより、偽装された公開鍵を持つサーバーへの接続が未然に防がれ、通信の安全性が高まります。

構文(syntax)

1<?php
2$ch = curl_init();
3curl_setopt($ch, CURLOPT_URL, "https://example.com");
4curl_setopt($ch, CURLOPT_PINNEDPUBLICKEY, "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=");
5$response = curl_exec($ch);
6curl_close($ch);
7?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ