OpenSSL 설치

PHP의 OpenSSL 지원을 사용하려면 PHP --with-openssl[=DIR]도 컴파일해야 합니다.

OpenSSL 라이브러리에는 런타임 시 정상 작동을 위한 추가 요구 사항도 있습니다. 특히 OpenSSL은 난수 또는 의사 난수 생성기에 대한 액세스가 필요합니다. 대부분의 Unix 및 Unix 계열 플랫폼(Linux 포함)에서 이는 /dev/urandom 또는 /dev/random 장치에 대한 액세스 권한이 있어야 함을 의미합니다.

구성 옵션 --with-system-ciphers를 사용하면 PHP가 하드 코딩된 기본값 대신 시스템 암호 목록을 사용합니다.

참고: Win32 사용자를 위한 참고 사항

이 확장이 작동하려면 Windows 시스템 PATH에서 사용할 수 있어야 하는 DLL 파일이 있습니다. 이 작업을 수행하는 방법에 대한 정보는 "Windows에서 PHP 디렉토리를 PATH에 추가하는 방법"이라는 제목의 FAQ를 참조하십시오. PHP 폴더에서 Windows 시스템 디렉토리로 DLL 파일을 복사하는 것도 작동하지만(시스템 디렉토리는 기본적으로 시스템의 PATH에 있기 때문에) 권장하지 않습니다. 이 확장을 사용하려면 경로에 다음 파일이 있어야 합니다. libeay32.dll 또는 OpenSSL 1.1부터 libcrypto-*.dll

또한 키 생성 및 인증서 서명 기능을 사용하려는 경우 시스템에 유효한 openssl.cnf 파일을 설치해야 합니다. 우리는 extras/openssl 디렉토리의 win32 바이너리 배포판에 샘플 구성 파일을 포함합니다.

PHP는 다음 논리를 사용하여 openssl.cnf를 검색합니다.

  • OPENSSL_CONF 환경 변수가 설정되면 구성 파일의 경로(파일 이름 포함)로 사용됩니다.
  • SSLEAY_CONF 환경 변수가 설정되면 구성 파일의 경로(파일 이름 포함)로 사용됩니다.
  • openssl.cnf 파일은 openssl DLL이 컴파일될 때 구성된 기본 인증서 영역에 있는 것으로 간주됩니다. 이것은 일반적으로 기본 파일 이름이 C:\Program Files\Common Files\SSL\openssl.cnf(x64) 또는 C:\Program Files(x86)\Common Files\SSL\openssl.cnf(x86)임을 의미합니다. PHP 7.4.0 이전, C:\usr\local\ssl\openssl.cnf.

설치 시 구성 파일을 기본 경로에 설치할지 아니면 다른 위치에 설치할지 그리고 환경 변수(가상 호스트별로)를 사용하여 구성 파일을 찾을지 결정해야 합니다. 구성 파일이 필요한 함수의 options을 사용하여 스크립트에서 기본 경로를 재정의할 수 있습니다.

주의 권한이 없는 사용자가 openssl.cnf를 수정할 수 없도록 합니다.


변경 로그

버전 설명
7.4.0 OpenSSL 기본 구성 경로가 C:\usr\local\ssl에서 각각 C:\Program Files\Common Files\SSLC:\Program Files (x86)\Common Files\SSL로 변경되었습니다.