CAによって発行されたOpenSSLの自作の自己署名SSL証明書

インターネットは、多くの場合、自己のCAと自己署名文書の後に見、それ自体は、クライアント証明書をインポートするCA、生成した後、Chromeは常に次のようなエラーが発生した訪問:
NETは:: ERR_CERT_COMMON_NAME_INVALIDは
、このサーバーは、ドメインであることを確認することはできません。コム-それのセキュリティ証明書は、サブジェクト代替名を指定されていません。これは、間違った設定や接続を傍受攻撃者のものであってもよいです。それはFirefoxとIEを発見されたため、Chromeブラウザは常に、それはセキュリティの強さのために高すぎると思いました。この問題を持っていますが、後で見つかった自己署名証明書に欠陥がありません。

まず、依存関係をインストール

OpenSSLは、Ubuntuと他のシステムが構築されている通常の状況のCentOSの、opensslの実行確認の下、自然のOpenSSLソフトウェアやライブラリの問題を使用する必要がある場合oepnsslが現れる:コマンドではありませんが見つかりませんビルトインの指示、手動でのCentOSにインストールする必要があり、例えば、インストールコマンド次のように:

[root@CA ~]# yum install openssl openssl-devel -y

設定ファイルを変更しますopenssl.cnfを

[root@CA ~]# vim /etc/pki/tls/openssl.cnf
dir=/etc/pki/CA

関連文書の作成

[root@CA ~]# cd /etc/pki/CA
[root@CA ~]# mkdir certs newcerts crl
[root@CA ~]# touch index.txt
[root@CA ~]# echo 01 > serial

openssl.cnfをで多くの実用的なコンフィギュレーション・ファイルには、証明書要求ファイル(CSR)を生成するように、存在するファイルには良いフォローアップを設定するなどcountryName_default(デフォルトの国)、stateOrProvinceName_default(デフォルト州)、localityName_default(デフォルト市)を、使用自己署名証明書は、ニーズの変更に応じて、入力ステップを保存することができます。

第二に、自己CA

ルートキー2.1の生成

[root@CA ~]# (umask 077; openssl genrsa -out private/cakey.pem 2048)

ルートCA証明書の生成2.2

[root@CA ~]# openssl req -x509 -new -key private/cakey.pem -out cacert.pem -days 3650

CAサーバは、より完全な構築します

第三に、証明書

3.1証明書要求を作成します

#先为网站生成一对密钥
[root@web ~]# (umask 077; openssl genrsa -out http.key 2048 )
#生成证书颁发请求.csr
[root@web ~]# openssl req -new -key http.key -out http.csr
#将此请求文件(http.csr)传递给CA服务器

3.2その他の使用

Chromeは証明書の共通名のNET :: ERR_CERT_COMMON_NAME_INVALIDエラーを認識しない解決

[root@CA ~]# vim http.ext
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName

[ SubjectAlternativeName ]
IP.1=192.168.1.1
IP.2=192.168.1.2

IPは、上記のフォーマットを参照して、この手順を実行する必要があり、証明書を発行する場合は、この段階では(他のチュートリアルとも異なる)の違いを発行したドメイン名の証明書の下では、(別の証明書発行利便性)の場合にopenssl.cnfを変更しないでください。

あなたはopenssl.cnfをを変更することで、証明書を発行したい場合は、上記の構成は、適切な場所の外のopenssl.cnfを直接変更することを除いて、basicConstraintsの= CAに設定する必要があります。basicConstraintsの= CAにFLASE:TRUE、そうでない場合は変更が有効にならない、です他のチュートリアル言及されていません。

証明書は、ドメイン名がある場合は、これは以下のような複数のドメイン名を、追加することができますすることができます:

[root@CA ~]# vim http.ext
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName

[ SubjectAlternativeName ]
DNS.1=test.com
DNS.2=www.test.com

extendedKeyUsageのは、一般的に持っている、すなわち使用に、証明書の目的を指定することができます。
serverAuth:リモートコンピュータの身元を確認するために
CLIENTAUTHをリモートコンピュータに身元を証明する
codeSigning:メイクソフトウェア発行者からの確認ソフトウェアを、発行後に変更ソフトウェア保護
emailProtection:電子メールの保護をメッセージの
タイムスタンプ:現在の拍子情報を可能に
するすべてのアプリケーションのために指定されていない場合は、デフォルトのポリシー

3.3証明書が発行され

この証明書サーバに署名するCA

[root@CA ~]# openssl ca -in http.csr -out http.crt -days [number]
或者
[root@CA ~]# openssl x509 -req -days 365 -in http.csr -signkey http.key -out http.crt
或者(需要事前定义好http.ext中的内容,该操作Chrome不会报错)
[root@CA ~]# openssl x509 -req -in http.csr -CA /etc/pki/CA/cacert.pem -CAkey /etc/pki/CA/private/cakey.pem -CAcreateserial -out http.crt -days 3650 -sha256 -extfile http.ext

その後、CAサーバとクライアントへの署名付き証明書

注:以降のユーザーがシステムに導入されたブラウザやcakey.pemファイルの世代へのアクセス、通常、再びへのドメイン証明書にアクセスする必要があります。

第四に、トラブルシューティング

1.問題:TXT_DBエラー数2
溶液:理由は、異なる、またはCA下index.txt.attr改変に同じ名前既に生成された証明書、共通名のセットである、unique_subjectへ= YES unique_subject = NO

おすすめ

転載: www.cnblogs.com/will-space/p/11913744.html