PHP 5.x에서 자체 서명 인증서를 만들고 싶습니다. 내 자신의 (대안) openssl 구성 내 PHP 코드에 의해 정의되어야합니다. PHP 스크립트는 다른 환경 (공유 호스팅 웹 서버)에서 실행됩니다.openssl.conf에 실제로 OpenSSL에 경로가 필요합니까?
공식 PHP Manual는 말한다 :
기본적으로, 시스템 openssl.conf의 정보가 요청을 초기화하는 데 사용됩니다; configargs의 config_section_section 키를 설정하여 구성 파일 섹션을 지정할 수 있습니다. config 키의 값을 사용하려는 파일의 경로로 설정하여 대체 openssl 구성 파일을 지정할 수도 있습니다. 아래 표에 나와있는 configargs에 존재에서, openssl.conf에서 그 등가물처럼 행동하는 경우 다음 키 .....
내 질문 : 나는 경로를 지정해야 할 이유가 있는가
$Configs = array(
'digest_alg' => 'sha1',
'x509_extensions' => 'v3_ca',
'req_extensions' => 'v3_req',
'private_key_bits' => 1024,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
'encrypt_key' => true,
'encrypt_key_cipher' => OPENSSL_CIPHER_3DES
);
$privkey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privkey, $Configs);
$sscert = openssl_csr_sign($csr, null, $privkey, 365, $Configs);
편집 : 그것없이 잘 작동하는 것 같다 때문에, 명시 적으로 openssl.conf하기 위해 사용자에
공헌 노트를 PHP Manual에, 왜 그들은 항상 openssl.cnf하는 경로를 지정합니까 ? 예를 들면 :
$configargs = array(
'config' => '/etc/ssl/openssl.cnf',
'digest_alg' => 'md5',
'x509_extensions' => 'v3_ca',
'req_extensions' => 'v3_req',
'private_key_bits' => 666,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
'encrypt_key' => false,
);
OpenSSL을하지 않고 PHP에서 자체 서명 인증서 (필요 phpseclib, a pure PHP X.509 implementation를) ... 만들기 귀하가 생성 한 모든 인증서에 대해 기본값없이 진행하는 것은 괜찮습니다. 그냥 지루한 일입니다. –
저는 PHP/OpenSSL 전문가는 아니지만 일부 구성 설정은 PHP 스크립트에 의해 정의/변경 될 수없는 것으로 보입니다. 누군가가이를 확인/기각 할 수 있습니까? – Mike