【PHP8.x】openssl_csr_get_public_key関数の使い方

作成日: 更新日:

openssl_csr_get_public_key関数は、OpenSSL拡張機能の一部として提供され、証明書署名要求(CSR)から公開鍵の情報を抽出する関数です。

証明書署名要求(CSR)とは、ウェブサイトなどで利用されるSSL/TLS証明書を発行してもらう際に、認証局(CA)に提出するデータのことです。このCSRには、ウェブサイトのドメイン名、組織名、所在地といった情報に加え、そのウェブサイトが利用する公開鍵の情報が含まれています。公開鍵は、インターネット上の通信を暗号化したり、デジタル署名を検証したりするために不可欠な要素です。

この関数を使用することで、与えられたCSRから、実際に利用されている公開鍵の情報をプログラム的に取得し、確認することが可能になります。例えば、CSRの内容を検証する際や、取得した公開鍵情報を他の暗号化処理に利用する際などに役立ちます。

関数の第一引数には、検査対象となるCSRを表すリソース、またはCSRの内容を含む文字列を渡します。オプションとして、第二引数 $short_tagtrue に設定することで、より簡潔な形式で公開鍵の情報を取得することもできます。

処理が成功した場合、この関数は公開鍵の情報を含むOpenSSLキーリソース、または公開鍵の詳細な情報を配列形式で返します。万が一、CSRの形式が不正であったり、公開鍵の抽出に失敗したりした場合には、falseが返されます。

この関数は、主にSSL/TLS証明書の発行プロセスや、公開鍵基盤(PKI)を活用したセキュリティアプリケーションの開発において、CSRの正確な検証や公開鍵の管理を行う上で重要な役割を果たします。

基本的な使い方

構文(syntax)

openssl_csr_get_public_key(string $csr, bool $use_shortnames = true, array $configargs = []): OpenSSLAsymmetricKey|false

引数(parameters)

OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true

  • OpenSSLCertificateSigningRequest|string $csr: 公開鍵を取得したいCSR(認証局証明書署名要求)を指定します。OpenSSLCertificateSigningRequestオブジェクトまたはCSRのDERエンコーディングされた文字列で指定できます。
  • bool $short_names = true: 公開鍵のアルゴリズム名などを短縮名(例: RSA)で取得するかどうかを指定します。trueの場合は短縮名、falseの場合は完全名(例: http://www.w3.org/2000/09/xmldsig#rsa-sha1)で取得します。

戻り値(return)

OpenSSLAsymmetricKey|false

openssl_csr_get_public_key 関数は、CSR(認証署名要求)から公開鍵を取得します。成功した場合は OpenSSLAsymmetricKey オブジェクトを返し、失敗した場合は false を返します。

【PHP8.x】openssl_csr_get_public_key関数の使い方 | いっしー@Webエンジニア