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

먼저 제 질문을 설명하겠습니다. 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 개인 키로 변환하는 방법이 있습니까?



답변

최신 버전의 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


답변

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

적용 할 명령

모든 명령 (회색)은 모든 유형의 키 파일 (녹색)을 “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


답변

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

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


답변