Linux 서버에서 Apache와 함께 사용하기 위해 PFX 인증서 파일을 어떻게 변환 할 수 있습니까?
Windows 인증서 서비스에서 PFX를 만들었습니다. PFX에는 전체 인증서 체인이 포함됩니다. (중개자가 아닌 루트 및 기본 인증서입니다.)
현명한 자들아, 나를 인도하십시오.
Linux 서버에서 Apache와 함께 사용하기 위해 PFX 인증서 파일을 어떻게 변환 할 수 있습니까?
Windows 인증서 서비스에서 PFX를 만들었습니다. PFX에는 전체 인증서 체인이 포함됩니다. (중개자가 아닌 루트 및 기본 인증서입니다.)
현명한 자들아, 나를 인도하십시오.
답변:
OpenSSL 을 사용하면 다음 명령을 사용하여 pfx를 Apache 호환 형식으로 변환 할 수 있습니다.
openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key
첫 번째 명령은 공개 키를 domain.cer
.
두 번째 명령은 개인 키를 domain.key
.
다음을 사용하여 Apache 구성 파일을 업데이트하십시오.
<VirtualHost 192.168.0.1:443>
...
SSLEngine on
SSLCertificateFile /path/to/domain.cer
SSLCertificateKeyFile /path/to/domain.key
...
</VirtualHost>
추가로
openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain.key
또한 CA (인증 기관) 인증서를 생성했습니다.
openssl pkcs12 -in domain.pfx -out domain-ca.crt -nodes -nokeys -cacerts
Apache 구성 파일에 포함 :
<VirtualHost 192.168.0.1:443>
...
SSLEngine on
SSLCertificateFile /path/to/domain.cer
SSLCertificateKeyFile /path/to/domain.key
SSLCACertificateFile /path/to/domain-ca.crt
...
</VirtualHost>
The certificate is not trusted because the issuer certificate is unknown
SEC_ERROR_UNKNOWN_ISSUER
오류가 발생 한다는 것 입니다.
Apache와 함께 작동하려면 한 단계가 더 필요했습니다.
openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
openssl pkcs12 -in domain.pfx -nocerts -nodes -out domain_encrypted.key
openssl rsa -in domain_encrypted.key -out domain.key
마지막 명령은 Apache에서 사용할 키를 해독합니다. domain.key 파일은 다음과 같아야합니다.
-----BEGIN RSA PRIVATE KEY-----
MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
-----END RSA PRIVATE KEY-----
몇 가지 도구를 사용했지만 이것이 내가 결국 얻은 것입니다.
IIS7에서 인증서를 생성하고 설치했습니다. IIS에서 PFX로 내보내기
변환하세요 pkcs12
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
참고 : PFX를 PEM 형식으로 변환하는 동안 openssl은 모든 인증서와 개인 키를 단일 파일에 저장합니다. 텍스트 편집기에서 파일을 열고 각 인증서 및 개인 키 (BEGIN / END 문 포함)를 개별 텍스트 파일에 복사하여 각각 certificate.cer, CAcert.cer, privateKey.key로 저장해야합니다.
-----BEGIN PRIVATE KEY-----
Saved as certificate.key
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
Saved as certificate.crt
-----END CERTIFICATE-----
Webmin이있는 Apache 가상 호스트에 추가되었습니다.
-nokeys
않도록 하려면 (개인 키를 추출하지 않음) 및 -clcerts
(인증서 만 추출)을 사용하십시오. 이것이 바로 Matej가 말한 것입니다.
SSLSHopper에는 서로 다른 서버 간 이동에 대한 꽤 철저한 기사가 있습니다.
http://www.sslshopper.com/how-to-move-or-copy-an-ssl-certificate-from-one-server-to-another.html
이 페이지 하단에서 관련 링크를 선택하기 만하면됩니다.
참고 : 개인 키에 대한 액세스를 제공하는 온라인 변환기가 있습니다. 신뢰할 수 있지만 OPENSSL 명령 (이 사이트에도 표시됨)을 사용하여 개인 키를 자신의 컴퓨터에서 비공개로 유지하는 것이 좋습니다.