[apache] Apache SSL 인증서를 위해 .CER를 .CRT로 변환해야합니까? 그렇다면 어떻게?

SSL로 Apache 2 서버를 설정해야합니다.

* .key 파일이 있지만 온라인에서 찾은 모든 문서, * .crt 파일이 지정되어 있으며 CA는 * .cer 파일 만 제공했습니다.

* .cer 파일은 * .crt와 동일합니까? 그렇지 않은 경우 CER을 CRT 형식으로 어떻게 변환 할 수 있습니까?



답변

암호화 인증서의 파일 확장자는 예상 한 것만 큼 표준화되지 않았습니다. Windows는 기본적으로 .crt파일을 두 번 클릭하는 것을 Windows 루트 인증서 저장소로 인증서를 가져 오기위한 요청으로 처리하지만 .cer파일을 인증서를보기위한 요청으로 처리합니다 . 따라서 Windows는 각 파일 유형을 두 번 클릭 할 때 발생하는 일에 대해 고유 한 다른 의미를 가지고 있다는 점에서 다릅니다.

그러나 두 번 클릭 할 때 Windows에서 처리하는 방식은 둘 사이의 유일한 차이점입니다. 두 확장 모두 공용 인증서가 포함되어 있음을 나타냅니다. 내가 본 모든 시스템 또는 구성 파일에서 다른 확장자 대신 하나의 확장자를 사용하도록 인증서 파일의 이름을 바꿀 수 있습니다. 그리고 Windows가 아닌 플랫폼 (및 Windows에서도)에서 사람들은 어떤 확장자를 사용하는지에 대해 특별히주의하지 않고 파일 내용이 정확하다면 둘 사이에 차이가 없기 때문에 두 가지를 상호 교환 적으로 취급합니다.

좀 더 혼란스럽게 만드는 것은 인증서 데이터를 파일에 저장하는 두 가지 표준 방법이 있다는 것입니다. 하나는 “이진”X.509 인코딩이고 다른 하나는 일반적으로 ” -----BEGIN CERTIFICATE-----“로 시작하는 “텍스트”base64 인코딩입니다 . 이들은 동일한 데이터를 다른 방식으로 인코딩합니다. 대부분의 시스템은 두 가지 형식을 모두 허용하지만 필요한 경우 openssl 또는 다른 도구를 통해 하나를 다른 형식으로 변환 할 수 있습니다. 인증서 파일 내의 인코딩은 누군가가 파일에 부여한 확장자와는 무관합니다.


답변

문서 mod_ssl 에 따르면 :

SSLCertificateFile:
   Name: SSLCertificateFile
   Description: Server PEM-encoded X.509 certificate file

인증서 파일은 PEM 인코딩 된 X.509 인증서 파일이어야합니다.

openssl x509 -inform DER -in certificate.cer -out certificate.pem


답변

기본적으로 DER 및 Base64의 두 가지 CER 인증서 인코딩 유형이 있습니다. 유형 DER가 오류로드 인증서 (asn1 인코딩 루틴)를 반환 할 때 PEM을 시도하면 작동합니다.

openssl x509 -inform DER -in certificate.cer -out certificate.crt

openssl x509 -inform PEM -in certificate.cer -out certificate.crt


답변

PKCS # 7로 인코딩 된 인증서 데이터가 포함 된 .cer 파일이 있고이를 PEM으로 인코딩 된 인증서 데이터 (일반적으로 .crt 또는 .pem 파일)로 변환하려고한다고 가정합니다. 예를 들어 PKCS # 7로 인코딩 된 데이터가 포함 된 .cer 파일은 다음과 같습니다.

----- PKCS7 시작 -----
MIIW4gYJKoZIhvcNAQcCoIIW0zCCFs8CAQExADALBgkqhkiG9w0BBwGggha1MIIH
...
POI9n9cd2cNgQ4xYDiKWL2KjLB + 6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G
+ bKhADEA
----- PKCS7 종료 -----

PEM 인증서 데이터는 다음과 같습니다.

----- 인증 시작 -----
MIIHNjCCBh6gAwIBAgIQAlBxtqKazsxUSR9QdWWxaDANBgkqhkiG9w0BAQUFADBm
...
nv72c / OV4nlyrvBLPoaS5JFUJvFUG8RfAEY =
----- 인증서 종료 -----

.cer 파일 (PKCS # 7 데이터 포함)을 예상 할 수있는 PEM 데이터 ( BEGIN CERTIFICATE위 예제 의 블록 )로 변환하는 OpenSSL 명령이 있습니다 . certfile.cer라는 파일에서이 명령을 사용하여 PKCS # 7 데이터를 PEM 형식으로 강제 변환 할 수 있습니다.

openssl pkcs7 -text -in certfile.cer -print_certs -outform PEM -out certfile.pem

.cer 또는 .pem 파일에는 하나 이상의 인증서 (아마도 전체 인증서 체인)가 포함될 수 있습니다.


답변

CER 는 바이너리 형식의 X.509 인증서이며 DER로 인코딩됩니다.
CRT 는 텍스트 ( base-64 ) 인코딩으로 캡슐화 된 이진 X.509 인증서 입니다.

동일한 인코딩이 아닙니다.


답변

.cer 파일을 .crt 파일로 변환하는 방법에 대한 질문에 대한 대답은 다음과 같습니다.

openssl pkcs7 -print_certs -in certificate.cer -out certificate.crt


답변

나는 명령을 사용합니다.

openssl x509 -inform PEM -in certificate.cer -out certificate.crt

그러나 CER는 DER로 인코딩 된 바이너리 형식의 X.509 인증서입니다. CRT는 텍스트 (base-64) 인코딩으로 캡슐화 된 이진 X.509 인증서입니다.

따라서 다음을 사용해야합니다.

openssl x509 -inform DER -in certificate.cer -out certificate.crt

그런 다음 인증서를 가져 오려면 :

CA를 디렉토리에 복사하십시오.

/usr/local/share/ca-certificates/

사용 명령 :

sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt

CA 저장소를 업데이트합니다.

sudo update-ca-certificates