34

OpenSSL コマンド ライン ツールを使用して、自己署名証明書を生成しています。2 つの問題を除いて、正しく動作しているようです。サブジェクト.cerの別名 (重要) を使用して作成することができず、バージョン 3の証明書を作成する方法を理解できませんでした(これが重要かどうかはまだわかりませんが、方法を学習することをお勧めします)。バージョンを設定します)。

誰もこれを成功させましたか?デフォルトの構成 ( .cfg) ファイルには、一見明確なドキュメントがあります (以下を参照)。

これは subjectAltName と issuerAltname 用です。メールアドレスをインポートします。subjectAltName=email:コピー

ただし、これは機能しません。私の推測では、サブジェクトの別名が表示されていません。これは、V1 仕様には存在しないためです。そのため、バージョンの設定も追求しています。

私が使用している設定ファイルは次のとおりです。

[ req ]
default_bits        = 2048 
default_keyfile     = privkey.pem 
distinguished_name  = req_distinguished_name
emailAddress        = myEmail@email.com
req_extensions          = v3_req
x509_extensions         = v3_ca

[req_distinguished_name]
C = [Press Enter to Continue]
C_default = US 
C_min = 2 
C_max = 2 

O = [Press Enter to Continue]
O_default = default 

0.OU=[Press Enter to Continue]
0.OU_default = default 
1.OU=[Press Enter to Continue]
1.OU_default = PKI 
2.OU=[Press Enter to Continue] 
2.OU_default = ABCD
commonName = Public FQDN of server 
commonName_max = 64

[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment

[ v3_ca ]
subjectKeyIdentifier   = hash
authorityKeyIdentifier = keyid:always,issuer:always
subjectAltName         = email:myEmail@email.com
issuerAltName          = issuer:copy
4

10 に答える 10

26

ここにあなたのための簡単なステップがあります

CSRの生成中に使用する必要が-configあり、-extensions 証明書の生成中に使用する必要がある-extfile-extensions

次に例を示します。

openssl req -new -nodes -keyout test.key  -out test.csr -days 3650 -subj "/C=US/ST=SCA/L=SCA/O=Oracle/OU=Java/CN=test cert" -config /etc/pki/tls/openssl.cnf -extensions v3_req
openssl x509 -req -days 3650 -in test.csr -CA cacert.pem -CAkey rootCA.key -CAcreateserial -out test.pem -extfile /etc/pki/tls/openssl.cnf  -extensions v3_req

お役に立てれば

于 2014-07-22T14:06:39.527 に答える
8

次のバージョンで動作するようになりました(emailAddressが間違って配置されました):

[ req ]
default_bits        = 2048 
default_keyfile     = privkey.pem 
distinguished_name  = req_distinguished_name
req_extensions          = v3_req
x509_extensions         = v3_ca

[req_distinguished_name]
C = [Press Enter to Continue]
C_default = US 
C_min = 2 
C_max = 2 

O = [Press Enter to Continue]
O_default = default 

0.OU=[Press Enter to Continue]
0.OU_default = default 
1.OU=[Press Enter to Continue]
1.OU_default = PKI 
2.OU=[Press Enter to Continue] 
2.OU_default = ABCD
commonName = Public FQDN of server 
commonName_max = 64
emailAddress = [Press Enter to Continue] 
emailAddress_default = myEmail@email.com

[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment

[ v3_ca ]
subjectKeyIdentifier   = hash
authorityKeyIdentifier = keyid:always,issuer:always
subjectAltName         = email:myEmail@email.com
issuerAltName          = issuer:copy

ノート:

  • 私が使用した証明書を生成するには:

    openssl req -config req.cnf -new -nodes -out req.pem -x509
    
  • の使用はあまり見たことがありませんissuerAltname(使用している場合は、場所を知りたいです)。
  • の使用issuer:alwaysはお勧めしませんauthorityKeyIdentifier
  • で使用できるemail:copyようになりましsubjectAltNameた。
  • v3_reqセクションは余分です(およびreq_extensions行。
于 2011-06-14T17:50:19.923 に答える
5

フォーム入力に基づいてこのコマンドを自動的に生成し、出力を表示するWeb ベースのツールを開発しました。


更新: certificatetools.comを参照してください

非常に人気があったので、改良して独自のドメイン名で公開しました。

ダウンロード可能な .csr を提供するだけでなく、それを生成するために使用された openssl コマンドと、必要な openssl.cnf 構成オプションも提供します。

例:

OpenSSL コマンド

#generate the RSA private key
openssl genpkey -outform PEM -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out priv.key

#Create the CSR
openssl req -new -nodes -key priv.key -config csrconfig.txt -out cert.csr

OpenSSL CSR 構成

[ req ]
default_md = sha256
prompt = no
req_extensions = req_ext
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
commonName = example.com
countryName = US
stateOrProvinceName = Louisiana
localityName = Slidell
organizationName = Acme Inc.
[ req_ext ]
keyUsage=critical,digitalSignature,keyEncipherment
extendedKeyUsage=critical,serverAuth,clientAuth
subjectAltName = @alt_names
[ alt_names ]
IP.0 = 1.1.1.1
IP.1 = 2.2.2.2
DNS.0 = server1.example.com
DNS.1 = server2.example.com
email.0 = email1@example.com
email.1 = email2@example.com
于 2015-10-27T17:34:12.680 に答える
3

CSR 証明書の要求を行うためにどのコマンドを使用しましたか? 証明書ファイルを作成するために使用したコマンドは何ですか? あなたが知っているさまざまな状況に対するさまざまな答え。

多分あなたは入れていません

subjectAltName=email:コピー

セクションで

[v3_req]

証明書の生成に openssl x509 を使用している可能性があります。

-extfile /etc/pki/tls/openssl.cnf

それがなければ設定ファイルを使用しないため

あなたも必要かもしれません

-拡張 v3_req

コマンド ライン スイッチ

于 2014-02-14T10:15:00.883 に答える