ECCを生成するためにopensslコマンドを使用して、RSA証明書

1は、ECCとRSA証明書証明書に
サーバが解読できるかどうRSA鍵交換では、ブラウザは、証明書が提供するRSA公開鍵暗号関連情報を使用して、それはサーバ証明書が対応する秘密鍵を持っていることを意味するだけでなく、対称性を計算することができます暗号化キーが必要。鍵交換とサーバー認証が組み合わされています。
ECDHE鍵交換では、ブラウザが署名証明書を検証するために、公開鍵を使用することができた場合、関連する情報を署名する秘密鍵を使用してサーバ証明書は、それが、サーバーは、このように認証サーバを完了し、対応する秘密鍵を持っていないことを意味します。鍵交換と、サーバー認証は完全に分離されています。

ECDHEデジタル署名アルゴリズムは、現在の鍵交換+署名であり、主にRSAおよびECDSAを使用することができる3つの主な方法がある:
RSA鍵交換(無署名)
ECDHE鍵交換、RSA署名
ECDHE鍵交換、ECDSA署名は

証明書建てECDSA公開鍵証明書は、一般的にECC証明書として知られ、RSA公開鍵は、RSA証明書を構築されています。ECCキー256が3072 RSAキーの安全性に加え、より高速なECCの動作と同一であるので、ECDHE + ECDSAデジタル署名の鍵交換が最良の選択です。同じ条件の下で、セキュリティのために、必要なECCアルゴリズムキー短いので、RSA証明書の数よりも少ないECC証明書ファイルのサイズ。
RSA鍵交換証明書はRSA(RSA非対称暗号化)またはECDHE鍵交換(RSA非対称署名)を使用することができる;および証明書のみECDHE ECC鍵交換(ECDSA署名非対称)を使用することができます。
すべてのブラウザが悪化する互換性のECC証明書を意味ECDHE鍵交換をサポートするわけではありません。Windows XPでは、例えば、ECC証明書のみのFirefoxを使用すると、ウェブサイトにアクセスすることができます(TLS Firefoxの独自の実現、オペレーティングシステムに依存しない);、AndroidのプラットフォームだけECC証明書をサポート4+ Androidに必要があります。

良いニュースは、nginxの1.11.0は、RSA / ECCデュアル証明書のサポートを提供し始めた、あります。その実装の原理は、双方が交渉TLSハンドシェイクでの分析暗号スイート、サポートECDSAは、ECC証明書、それ以外の場合はRSA証明書を返す場合。
つまり、最新のnginxので、私たちは、古いブラウザは依然としてので、互換性を確保し、RSA証明書を取得する一方ECC証明書は、最近のブラウザのためのより良い体験を提供することができます。今回は、魚やクマの足の両方を持つことができます。

2、X509コマンド上
のOpenSSL CAコマンドX509のような擬似署名または証明書要求のために同じアクションを実行することができます。自己CAを使用するには、「ミニCA」X509ツールのような注意、のopenssl X509は、X509によって、自分自身をそのすべての設定をコンフィギュレーションファイルを読み取らないので、opensslのX509
x509証明書要求ファイルを確立することができませんでしたので、それが唯一の要求ファイルを作成するためのopenssl reqをを使用して、署名からX509を使用することができます。
署名の時以来、「-req」オプションを使用すると、それ以外の場合は、「-signkey」自己の署名時に秘密鍵が使用されている提供を使用し、それは証明書ファイルだと思った、とデフォルト設定されます、それを明確に証明書要求ファイルの入力ファイルと判断しました。
REQ -new -out -keyout key.pem OpenSSLのreq.csr
x509.crt OpenSSLのX509 -req -IN req.csr -signkey key.pem -out
証明書X509はまた、他の人に証明書を発行しなければならない、他の人の要求に署名するために使用することができます。他の人がシリアルファイルが存在することを保証する証明書を発行したときに、自動的に作成オプション「-CAcreateserial」を使用していることに注意してください。
opensslのX509 -req -in req.csr -CA ca.crt -CAkey ca.key -out x509.crt -CAcreateserial

3、生成されたECC証明書

ecparam ECDSAキーを生成するためにopensslコマンドを使用します(-nameパラメータprime256v1またはsecp384r1を。256ビットの事実は、セキュリティとスピードが十分でなければなりません。)

opensslのecparam -name prime256v1 -genkey -out EccCA.key

パスワード保護からキー(オプション)

opensslのEC -in EccCA.key -des -passoutパス: "123456" -out EccCA.key

ECDSA証明書要求opensslのREQを生成するには、コマンドを使用します

openssl reqが-new -key EccCA.key -out EccCA.req -subj "/C=CN/ST=Shanxi/L=Xi'an/O=Huawei/OU=IT/CN=.*"

発行したコマンドのopenssl x509証明書を使用します

opensslのX509 -req -in EccCA.req -signkey EccCA.key -out EccCA.pem

生成されたコマンドのopenssl ecparamを使用してECDSAキー

opensslのecparam -name prime256v1 -genkey -out EccSite.key

ECDSA証明書要求opensslのREQを生成するには、コマンドを使用します

openssl reqが-new -key EccSite.key -out EccSite.req -subj "/C=CN/ST=Shanxi/L=Xi'an/O=Huawei/OU=IT/CN=.*"

発行したコマンドのopenssl x509証明書を使用します

opensslのX509 -req -in EccSite.req -CA EccCA.pem -CAkey EccCA.key -out EccSite.pem -CAcreateserial

4、RSA証明書を生成

コマンドのopenssl genrsaを使用して生成されたRSAキー

opensslのgenrsa -out server.keyの2048

証明書の要求と証明書の交付を生成し、その後のは、ECC証明書プロセスと整合処理します

5、PKCS12ファイル生成
PKCS12ファイルを生成する)1が、CA証明書が含まれていません:
OpenSSLのPKCS12 -exportアウトocspserverpkcs12.pfx ocspservercert.pem -inkey ocspserverkey.pem -IN
2)CA証明書を含むPCS12ファイルを生成する:
OpenSSLのPKCS12 -export -INをserver.crt -CAfileca.crt -鎖をserver.key - server.pfxアウトINKEY
3)分離情報pcks12でアウト、ファイルに書き込ま:
OpenSSLのPKCS12 -IN ocsp1.pfxアウトcertandkey.pem
4)を示します。 PKCS12情報:
OpenSSLのPKCS12 -IN ocsp1.pfx -info
------------------------------------
添付: 1、cert1.pem .P12形式を変換するために
OpenSSLのPKCS12 -export -IN cert1.pem -inkey cert1.key -certfile ca.pemアウトcert1.p12
2は、cert1.pem .CER形式に変換:単に.cerの拡張子を変更することができます。

6、個人情報閲覧
ECCプライベート
OpenSSLのEC -IN EccSite.keyは-text -noout
のopenssl rsaコマンドを使用してRSA秘密鍵を

7、公開鍵情報の表示
OpenSSLをX509 -in EccSite.pem -noout -text

8、查看加密套件
のOpenSSL暗号-V 'EECDH + AES128' | -tカラム
0xC0,0x2F - ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kxを= ECDH金= RSAなお、Enc = AESGCM(128)のMac = AEAD
0xC0,0x2B - ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 KX = ECDH金= ECDSAなお、Enc = AESGCM(128)のMac = AEAD
0xC0,0x27 - ECDHE-RSA-AES128-SHA256 TLSv1.2 KX = ECDH金= RSAなお、Enc = AES(128)のMac = SHA256
0xC0,0x23 - ECDHE- ECDSA-AES128-SHA256 TLSv1.2 Kxを= ECDH金= ECDSAなお、Enc = AES(128)のMac = SHA256
0xC0,0x13 - ECDHE-RSA-AES128-SHAのSSLv3 Kxを= ECDH金= RSAなお、Enc = AES(128)のMac = SHA1
0xC0,0x09 - ECDHE-ECDSA-AES128-SHAのSSLv3 Kxを= ECDH金= ECDSAなお、Enc = AES(128)のMac = SHA1

それは前方に並んでRSA署名検証アルゴリズム(金= RSA)暗号スイートを使用するものとして見ることができる、nginxのを優先RSA証明書ではなく、ECDSA証明書を与え、誤判定を行いつながります。

9、5つの株券自動的に生成されたスクリプトツールの
証明書の弟を残し、参照は、RSAのビルドスクリプト(書きましたhttp://3ms.huawei.com/km/groups/1503235/blogs/details/5239717を)、私は自動5をしましたスクリプトの証明書のサポートRSA、ECC証明書の生成を生成し、パスワードの暗号化を使用することができ、パスワードの暗号化を使用することはできません。

おすすめ

転載: www.cnblogs.com/linyihan/p/11234117.html