2013-05-10 16 views
19

私たちは、パートナーからWebサービスの機能を実装しようとしています。さて、送信されるコンテンツは、公開鍵で暗号化する必要があります。公開鍵は、提供する必要があります。X.509:私設/公開鍵

セキュリティ仕様では、公開証明書がX.509標準でなければならないと記載されています。 X.509はプライベート/パブリックキーメソッドに頼っていませんか?

openssl req -new -x509 -days 365 -nodes -out ./cert.pem -keyout ./cert.pem 

私はプライベートで作成するためにコマンドを変更しなければなりません:私は、次のコマンドを使用して、プライベートキー、および証明書、ない公開鍵を含む、1 .pemファイルを取得しているため公開鍵?

答えて

54

従う

openssl genrsa -out private.key 1024 
openssl req -new -x509 -key private.key -out publickey.cer -days 365 
openssl pkcs12 -export -out public_privatekey.pfx -inkey private.key -in publickey.cer 

ステップ1として、OpenSSLを使用して秘密鍵と公開鍵を生成するための基本的なコマンドラインの手順がある - 秘密鍵

ステップ2を生成が - X509証明書(.cerファイルを作成します(またはパートナーアプリケーションへのアップグレード)の際にアップロードする公開鍵を含んでいます。

ステップ3 - x509証明書と秘密鍵をpfxファイルにエクスポートします。選択したラッパー・ライブラリーが.pemファイルを使用して要求に署名する場合、このステップは不要です。

希望に役立ちます! This answer explains異なるファイル拡張子。

+1

私は3番目のコマンドが何をしているのかよく分かりませんが、 privatekey.pemとpublickey.cerです。ありがとう! – Ahatius

+0

この例では、 'privatekey.pem'には秘密鍵または公開鍵だけが含まれていますか? –

+5

最初のコマンドで間違ったファイル拡張子を使用しています。混乱を避けるために、 '.pem'の代わりに' .key'を使うべきです。結果のファイルは単に秘密鍵になります。誰かが誤って '.pem'ファイルを他の人に送信してセキュリティ上の問題を引き起こす可能性があります。 – w0rp

8

公開鍵は、x.509証明書の内部に格納されています。 証明書は、この公開鍵にID情報(共通名、アドレスなど)をバインドします。

+1

まあ、私の場合には** BEGIN CERTIFICATE **と** BEGIN PRIVATE KEYがあります**。私の公開鍵はCERTIFICATEですか?そして、私はそれらの2つを別々のファイルに分けることができるので、もう片方の側は秘密鍵を見ることができません。 – Ahatius

+2

はい、CERTIFICATE部分は証明書(公開鍵を使用してbase64でコード化されています)、PRIVATE KEYは非公開鍵です。あなたはそれらを分けて(そして実際には)、証明書部分だけを相手に送ることができます。 –

+2

ありがとう、ありがとう。私はそれらに証明書の部分を送ってきます:)私はupvoteにしたいと思いますが、明らかに私は毎日の投票限度に達しました:O – Ahatius

1

秘密鍵と公開鍵のペアを作成します。

openssl req -x509 -newkey rsa:2048 -keyout private.key -out public.cert -days 365 

オプションで、ペアを1つのファイルに結合します。

openssl pkcs12 -export -inkey private.key -in public.cert -out certificate.pfx 

この結果、次のファイルが作成されます。

private.key 
certificate.pfx 
public.cert 

も参照してください