SSL을 사용하는 Apache-CER를 CRT 인증서로 변환하는 방법은 무엇입니까?
SSL로 Apache 2 서버를 설정해야합니다.
* .key 파일이 있지만 인증서 발급자가 * .cer 파일을 제공했습니다.
인터넷에 대한 모든 문서에서 * .crt 인증서 용입니다.
* .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
CER 는 바이너리 형식의 X.509 인증서이며 DER로 인코딩됩니다.
CRT 는 텍스트 ( base-64 ) 인코딩으로 캡슐화 된 이진 X.509 인증서 입니다.
동일한 인코딩이 아닙니다.
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 파일을 .crt 파일로 변환하는 방법에 대한 질문에 대한 대답은 다음과 같습니다.
openssl pkcs7 -print_certs -in certificate.cer -out certificate.crt
나는 명령을 사용합니다.
openssl x509 -inform PEM -in certificate.cer -out certificate.crt
But CER is an X.509 certificate in binary form, DER encoded. CRT is a binary X.509 certificate, encapsulated in text (base-64) encoding.
Because of that, you maybe should use:
openssl x509 -inform DER -in certificate.cer -out certificate.crt
And then to import your certificate:
Copy your CA to dir:
/usr/local/share/ca-certificates/
Use command:
sudo cp foo.crt /usr/local/share/ca-certificates/foo.crt
Update the CA store:
sudo update-ca-certificates
If your cer file has binary format you must convert it by
openssl x509 -inform DER -in YOUR_CERTIFICATE.cer -out YOUR_CERTIFICATE.crt
The .cer and .crt file should be interchangable as far as importing them into a keystore.
Take a look at the contents of the .cer file. Erase anything before the -----BEGIN CERTIFICATE-----
line and after the -----END CERTIFICATE-----
line. You'll be left with the BEGIN/END lines with a bunch of Base64-encoded stuff between them.
-----BEGIN CERTIFICATE-----
MIIDQTCCAqqgAwIBAgIJALQea21f1bVjMA0GCSqGSIb3DQEBBQUAMIG1MQswCQYD
...
pfDACIDHTrwCk5OefMwArfEkSBo/
-----END CERTIFICATE-----
Then just import it into your keyfile using keytool.
keytool -import -alias myalias -keystore my.keystore -trustcacerts -file mycert.cer
Just do
openssl x509 -req -days 365 -in server.cer -signkey server.key -out server.crt
참고URL : https://stackoverflow.com/questions/642284/apache-with-ssl-how-to-convert-cer-to-crt-certificates
'programing' 카테고리의 다른 글
Regex를 사용하여 Javascript에서 HTML 태그 제거 (0) | 2020.08.17 |
---|---|
프로그래밍 방식으로 ScrollView를 비활성화 하시겠습니까? (0) | 2020.08.17 |
부울 연산자의 차이점 : & 대 && 및 | (0) | 2020.08.17 |
PHP 날짜를 포함하는 요소로 다차원 배열 정렬 (0) | 2020.08.17 |
Spring Framework에서 종속성 주입 및 제어 반전이란 무엇입니까? (0) | 2020.08.17 |