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

作成日: 更新日:

openssl_csr_sign関数は、指定された証明書署名要求(CSR)にデジタル署名を行い、新しいデジタル証明書を生成する関数です。WebサイトのSSL/TLS証明書発行プロセスで主に利用されます。

WebサーバーなどからのCSRに対し、信頼できる認証局(CA)が秘密鍵と証明書で署名することで、Webサイトの正当性を保証し、安全な暗号化通信を可能にするデジタル証明書が発行されます。この署名プロセスは、インターネットの信頼性とセキュアな通信環境確立に不可欠です。

関数は、署名対象となるCSR、署名を行うCAの秘密鍵と証明書、および証明書の有効期間などの情報を受け取ります。処理が成功すると、生成された証明書の内容が返されます。

鍵管理と厳密な設定が求められる、セキュリティ上重要な処理です。

基本的な使い方

構文(syntax)

openssl_csr_sign(mixed $csr, mixed $private_key, mixed $output, int $days, ?array $options = null, int $serial = 0): bool

引数(parameters)

OpenSSLCertificateSigningRequest|string $csr, OpenSSLCertificate|string|null $ca_certificate, OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key, int $days, ?array $options = NULL, int $serial = 0, ?string $serial_hex = NULL

  • OpenSSLCertificateSigningRequest|string $csr: 証明書署名要求 (CSR) を表す OpenSSLCertificateSigningRequest オブジェクト、またはCSRのPEMエンコードされた文字列
  • OpenSSLCertificate|string|null $ca_certificate: CA証明書を表す OpenSSLCertificate オブジェクト、またはCA証明書のPEMエンコードされた文字列。NULLの場合、CSR自身が署名者として扱われます。
  • OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key: CAの秘密鍵。OpenSSLAsymmetricKey オブジェクト、CA証明書(公開鍵と秘密鍵が紐づいている場合)、または秘密鍵のPEMエンコードされた文字列
  • int $days: 証明書の有効期間(日数)
  • ?array $options = NULL: オプションを指定する連想配列。詳細については公式ドキュメントを参照してください。
  • int $serial = 0: 生成される証明書のシリアル番号。0を指定すると自動生成されます。
  • ?string $serial_hex = NULL: 生成される証明書のシリアル番号を16進数文字列で指定します。

戻り値(return)

OpenSSLCertificate|false

証明書署名リクエスト(CSR)に秘密鍵で署名した結果として、OpenSSLCertificateオブジェクトが返されます。署名に失敗した場合は false が返されます。

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