2017-10-24 34 views
0

여기에도 비슷한 질문이 몇 개 있지만 내 경우에는 아무도 대답하지 않았습니다. 웹 서비스의 HTTPS를 통해 CURL에서 작동하도록 SSL 인증서를 얻으려고합니다.OpenSSL 인증서 생성 및 pem/cer 출력

첫째, 내 리눅스 상자 내가 이러한 파일을 모두 가지고있는 CSR

openssl req -newkey rsa:2048 -keyout myserver_private.key -out myserver_pkcs10.csr 

를 만들었습니다.

나는 웹 서비스에 의해 서명되는 CSR 파일을 전송하고 다시 보내 curl_setopt($ch, CURLOPT_SSLCERT, "?.pem"); 내가 지금 .PEM 파일이 필요 내를 들어

signingauthority_Root_CA.crt, myserver_pkcs10.csr, theirserver_CA.crt

. 어떻게이 파일을 만들고 어떻게 만듭니 까? theirserver_CA.crt?

curl_setopt($ch, CURLOPT_CAINFO, "?.cer");도 사용해야하며, 그렇다면이 .cer 파일을 어떻게 만듭니 까? 이것은 중개인 일명 서명 기관입니까?

답변

1

*.crt 파일을 텍스트 편집기로 엽니 다. PEM 인 경우 -----BEGIN CERTIFICATE----------END CERTIFICATE-----으로 구분 된 Base64 텍스트 블록이 포함될 것입니다.

그럴 경우 해당 파일의 이름을 변경하십시오.

파일이 이진 파일 인 경우 DER입니다. Base64로 (PEM)로 변환하기 위해 사용

openssl x509 -in <DER filename> -outform PEM -out <PEM filename> 

CURLOPT_CAINFOCURLOPT_SSLCERT을 위해 사용되는 theirserver_CA.crt

나는 CA도 다시 myserver.crt 보낸 것 생각 것

이 될 것입니다.

사용 :

openssl x509 -noout -subject -issuer -in <PEM file> 

당신이 전송되었습니다 한 내용을 해결하기 위해 각 인증서의 주체 및 발급자를 볼 수 있습니다.

+0

올바른 내용입니다. 나는 당신이 대답하기 전에 그것을 알아 냈다.하지만 그것이 기본적으로 옳았다는 것을 알기에 좋다. 나는 각 파일을 DER로 변환 한 다음 PEM으로 변환했습니다 (아마도 이런 식으로 완전히 필요하지는 않았을 것입니다). 그런 다음'----- BEGIN CERTIFICATE ----- '전에 myserver_private.key의 내용을 myserver_pkcs10.pem에 추가하고 파일의 이름을 myserver_full.pem으로 바 꾸었습니다. 'myserver_pkcs10.pem' (개인 키없이)를'CURLOPT_SSLCERT'에서 시도했을 때 에러가 발생했습니다. 그래서 개인 키도 추가해야 할 필요가 있다고 생각했습니다. – Fid