pkcs8 형식으로되어있는 개인 키가 사용되었습니다.이 개인 키를 사용하여 pem 파일로 변환 할 수있었습니다 다음 명령을 (또한 내가 관리자 CERT 창에 가져올 것)pem 개인 키를 .NET에서 사용할 수있는 창 형식으로 변환하는 방법
openssl pkcs8 -inform der -nocrypt -in private.key -out pkey.pem
는 지금 그래서 내가 X509 인증서를 만들 .NET에서 사용할 수 있습니다 PKCS12이 변환해야합니다.
openssl pkcs12 -export -name myalias -in mycert.crt -inkey pkey.pem -out keystore.p12
그러나, 나는 내가 -in 인수로 pkey.pem 파일을 사용하여 시도했다, 공개 키를 가지고 있지 않지만, 그것은 나에게 No certificate matches private key
을 알려줍니다
-in
인수없이 시도하면 아무 일도 일어나지 않습니다. 아무런 의미가 없습니다.
ctrl-c
을 누를 때까지 빈 행이 있습니다.
개인 키에서 공개 키를 생성하거나 공개 키없이 pkcs12로 변환하려면 어떻게해야합니까?
이 질문의 첫 번째 부분은, 나에게이 명령 (-nocerts) 실행 말한다 희망, 준 I found an answerfrom the answer here
이었다
openssl pkcs12 -export -nocerts -inkey your.private.key.pem -out your.private.key.p12
그러나이 난을 가져올 때 파일을 Windows 키 저장소에 저장하면 가져올 때 The specified file is empty
이라고 표시됩니다.
은 또한 인증서 파일을 생성 한 인증서 서명 요청 from instructions here을 생성하는 데 성공했지만, 말을 No certificate matches private key
Another answer 내가 할 공개 키를 생성 제안하는 명령은 여전히 허용하지 않았지만, 내가 사용하는 때 그것을 인수 -in
은 아직도 내가이 명령을 사용하여이 공개 키는 개인 키에서 생성 된로 이해하지 No certificate matches private key
을 말한다 같이 openssl rsa -in privkey.pem -pubout > key.pub
편집 : 내가 대답 아래 게시 한하지만, 언급했듯이 나는이 정보를 검증 할 방법이 없다. 또는 그것이 작동하는지 말하십시오. 더 자세한 정보가있는 분은 알려주십시오.
자신이 만든 것은 자신의 개인 키로 서명 한 자체 서명 인증서입니다. 참고 ... 혼란을 피하기 위해 인증서의 파일 확장자는 ".csr"이 아니어야합니다. 서명 요청입니다. 내가 갖고있는 질문은 클라이언트 응용 프로그램에서 개인 키와 인증서가 정확히 사용되는 것입니다. SSL을 통한 인증/승인을위한 것입니까, 아니면 서버의 일부 내용에 서명하는 것입니까? 또는 다른 것? – gtrig
제 3 자에 의해 개인 키와 x509 인증서가 제공되었으므로 개인 키를 사용하여 내 요청에 서명 및/또는 암호화하고 공개 키를 사용하여 웹 서비스에서 응답을 읽어야한다고 가정합니다. 바인딩에 관한 질문이 있습니다. http://stackoverflow.com/q/19427768/198048 일종의, 아무 생각. 분명히 추측해야하지만, 지금은 .Net에서 사용할 수있는 것이 있습니다. 이전보다 한 단계 앞섰습니다. –
일반적으로 클라이언트와 웹 서버 간의 암호화 된 통신은 SSL/TLS를 통해 수행됩니다. URL은 "https : //"로 시작합니다. 이것이 사용해야하는 메커니즘이고 개인 키가 제공된 경우 "양방향"또는 "상호"SSL이 필요할 수 있습니다. 이는 클라이언트가 서버에 대해 인증해야 함을 의미합니다. 이것은 개인 키를 통해 이루어지며 일치하는 인증서입니다. 서버가 클라이언트 인증서에 서명 한 CA를 신뢰하면 인증되고 권한을 부여받을 수 있습니다. 클라이언트가 서버 인증서에 서명 한 CA를 신뢰하면 모든 보안 연결이됩니다. – gtrig