먼저 제 질문을 설명하겠습니다. 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