공개 키를 다음과 같이 사용하십시오.양성자 교환막, 변환하는 방법덕형식 사용법OpenSSL? 이는 x509 인증서가 아닙니다. 또한 이 질문은 RSA가 아닌 EC(ECDSA) 공개 키에 관한 것입니다.OpenSSLC, C++ 또는 기타 프로그래밍 언어가 아님
-----BEGIN PUBLIC KEY-----
xxx
-----END PUBLIC KEY-----
답변1
노력하다:
openssl pkey -pubin -in ec_pub.pem -outform DER -out ec_pub.der
답변2
PEM 형식은 -----BEGIN …-----
줄, Base64로 인코딩된 텍스트 및 -----END …-----
줄로 구성됩니다. DER(바이너리)로만 변환하려면 본문을 추출하고 Base64에서 바이너리로 변환하면 됩니다.
(이것은 일반 텍스트, 즉 암호화되지 않은 파일에 대해 작동합니다. 암호화된 PEM 파일에는 암호화 방법을 설명하는 추가 정보가 있습니다. 일반적으로 DER을 추출할 수는 없으며 Base64로 인코딩된 부분에는 아무 것도 없기 때문에 이를 해독해야 합니다. 암호화 방법.)
일반적으로 다음 명령을 사용하여 이 작업을 수행할 수 있습니다.openssl enc -base64
명령으로 줄여서 사용할 수 있습니다 openssl base64
.
openssl base64 -d -in myfile.pem -out myfile.der
예를 들어 직접 Base64 디코더를 사용하려면 base64
시작/끝 줄을 제거해야 합니다.
<myfile.pem grep '^[^-]' | base64 -d >myfile.der
또는 openssl
작업 중인 특정 데이터 유형과 관련된 관리 명령을 사용할 수 있습니다. (여러 가지 이유로 여러 openssl 명령으로 여러 유형의 데이터를 처리할 수 있습니다.) 작업 a는 PUBLIC KEY
다음과 같습니다.openssl pkey
. -outform DER
DER 출력을 원함을 나타내려면 전달합니다 ( -inform PEM
기본값이므로 선택 사항). 입력이 공개 키임을 나타내기 위해 전달됩니다 -pubin
(기본적으로 개인 키가 필요함 openssl pkey
).
openssl pkey -pubin -in myfile.pem -outform DER -out myfile.der
키가 EC 키라는 것을 알게 된다면 괜찮습니다. 하지만 더 이상 지원되지 않는 OpenSSL의 오래된 버전을 사용하기 위한 명령이 필요하지 않는 한 openssl ec -pubin -in myfile.pem -outform DER
이를 사용해도 아무런 이점이 없습니다 .ec