개인-공개 키 쌍을 생성하고 공개 키를 추가 할 수있는 인증서로 변환하려고합니다. 내 신뢰 저장소에.
개인 & 공개 키를 생성하려면 : openssl rsa -in private.pem -outform PEM -pubout -out public_key.pem
이제 이것을 인증서로 변환하려고합니다.
openssl x509 -outform der -in public_key.pem -out public.cer
하지만 오류가 발생합니다.
7962:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.30.2/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE
모든 자습서에서는 신뢰 저장소에 추가하기 전에 pem을 crt로 변환해야 함을 보여줍니다.
답변
당신은 ” 공개 키를 인증서로 변환 “합니다. 인증서에는 공개 키가 포함되지만 주체, 발급자, 인증서가 유효한시기 등과 같은 자세한 정보도 포함됩니다. 인증서는 발급자가 서명합니다. 따라서 대신 필요한 것은 공개 키를 포함하지만 모든 추가 정보도 포함하는 인증서 서명 요청 (CSR)을 만드는 것입니다. 이 CSR은 인증 기관 (CA)의 서명을 받아야 인증서가 생성됩니다.
어떤 브라우저에서도 신뢰하지 않는 간단한 자체 서명 인증서를 생성하려면 openssl을 사용하여 자체 서명 인증서를 생성하는 방법을 참조하십시오. .
댓글
- 이 예에서는 openssl req -x509 -newkey rsa : 4096 -keyout key.pem -out cert.pem -days 365 key.pem에 비공개 키와 공개 키가 모두 포함 되나요?
- @ user1692342 : 댓글의 질문이 원래 질문과 어떤 관련이 있는지 잘 모르겠습니다.
- @ user1692342 : ' 그러나 key.pem은 공개 키를 포함 하고 공개 키도 cert.pem에 포함 된 개인 키입니다.
답변
공개 키를 인증서로 변환 할 수 없습니다.
PEM 인코딩 / 파일 형식에 아래와 같이 암호화 된 인증서 텍스트가 포함될 것으로 예상되므로 원래 명령이 작동하지 않습니다.
—– BEGIN CERTIFICATE —–
여기에서 인증서 데이터
—– END CERTIFICATE —–
따라서 원본 .PEM 파일을보고 다른 항목 (예 : BEGIN RSA …)을 보면 잘못된 것입니다.
이제 스레드 제목에 따라 PEM을 CRT 파일 형식으로 변환 을 찾고 있습니다. x509 인증서는 DER 및 PEM의 두 가지 인코딩으로 제공 될 수 있습니다. 또한 PEM은 .CRT, .CER 및 .PEM 형식 내에있을 수 있습니다.
따라서 해당 오류가 표시되면 DER 인코딩 인증서를 PEM 인코딩 인증서로 취급 할 가능성도 있습니다. 이 페이지 의 지침에 따라 실제로 DER로 인코딩되었는지 확인할 수 있습니다.