개인 키를 RSA 개인 키로 변환하는 방법은 무엇입니까?


97

먼저 제 질문을 설명하겠습니다. CA에서 인증서를 구입하고 다음 형식을 사용하여 csr 및 개인 키를 생성했습니다.

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr

server.key 파일을 열면 "----- BEGIN PRIVATE KEY -----"로 시작하는 것을 볼 수 있습니다.

내 서버에서 SSL 인증서를 사용하고 모든 것이 잘 보입니다.

이제 beanstalk로드 밸런서에서 사용할 수 있도록 동일한 인증서를 AWS IAM에 업로드하려고합니다. 이 aws 문서 http://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SubmitCSRCertAuth 에서 다음 명령을 사용합니다.

iam-servercertupload -b public_key_certificate_file  -k privatekey.pem -s certificate_object_name

필요에 따라 인증서 파일 이름을 변경했지만 "400 MalformedCertificate Invalid Private Key"오류가 계속 발생합니다.

흥미로운 점은 aws 문서 페이지에서 그들이 보여주는 샘플 프라이빗 키가 "------- Begin RSA Private Key --------"로 시작한다는 것입니다.

openssl을 사용하여 개인 키를 RSA 개인 키로 변환하는 방법이 있습니까?

답변:


155

최신 버전의 OpenSSL BEGIN PRIVATE KEY에는 개인 키 + 키 유형을 식별하는 OID (이를 PKCS8 형식이라고 함)가 포함되어 있기 때문입니다. 이전 스타일 키 (PKCS1 또는 기존 OpenSSL 형식으로 알려짐)를 얻으려면 다음을 수행하십시오.

openssl rsa -in server.key -out server_new.key

또는 PKCS1 키가 있고 PKCS8을 원하는 경우 :

openssl pkcs8 -topk8 -nocrypt -in privkey.pem

1
이것은 Invalid PEM structure, '-----BEGIN...' missing.동일한 키를 가진 순수 SSH가 작동하는 동안 Cyberduck과 같은 도구에서와 같은 이상한 오류 메시지를 얻는 솔루션이기도합니다 .
다니엘

1
감사합니다! A client error (MalformedCertificate) occurred when calling the UploadServerCertificate operation: Unable to parse certificate. Please ensure the certificate is in PEM format.내 개인 키에서 이것을 얻고 실행 중 이었습니다 !
philfreo

4
참조 : 자세한 설명은 stackoverflow.com/q/20065304/53974 를 참조하십시오 .
Blaisorblade 2015

1
이것의 반대를 어떻게할까요? 나는 필요 Private Key에서를 RSA Private Key?
edthethird

1
openssl pkcs8 -topk8 -nocrypt -in privkey.pemSTDOUT에 PKCS8 작성합니다
폴 캐러

24

이것은 약간의 도움이 될 수 있습니다 (명령어에서 문자 그대로 백 슬래시 '\'를 쓰지 마십시오. "모든 것이 한 줄에 있어야 함"을 나타 내기위한 것입니다) :

적용 할 명령

모든 명령 (회색)은 모든 유형의 키 파일 (녹색)을 "in"인수로 사용하는 것 같습니다. 멋지네요.

더 쉬운 복사-붙여 넣기를위한 명령은 다음과 같습니다.

openssl rsa                                                -in $FF -out $TF
openssl rsa -aes256                                        -in $FF -out $TF
openssl pkcs8 -topk8 -nocrypt                              -in $FF -out $TF
openssl pkcs8 -topk8 -v2 aes-256-cbc -v2prf hmacWithSHA256 -in $FF -out $TF

openssl rsa -check -in $FF
openssl rsa -text  -in $FF

1
(편집 할 수있는 이미지의 "graphml"파일 YED yworks 예를 들어)를 찾을 수 있습니다 여기에
데이비드 Tonhofer

8

"BEGIN OPENSSH PRIVATE KEY"를 "BEGIN RSA PRIVATE KEY"로 변환하려면

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

이것이 바로 내가 필요한 것입니다. 감사!
RossD

이 동작은 ssh-keygen 맨 페이지에 간접적으로 문서화되어 있지만 -m 플래그의 사용은 실제로 -i 및 -o 이외의 다른 작동 모드에 대해 언급되지 않습니다
ikrabbe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.