5

opensslを使用して、テスト用のcrl配布ポイントを含むx509証明書を作成する際に問題が発生します。

ドキュメントを確認したところ、この目的のための構成設定crlDistributionPointsが見つかりました。残念ながら、opensslは、crl配布ポイントを使用したバージョン3証明書ではなく、常にx509バージョン1証明書を生成します。コマンドまたは構成に問題があることは確かですが、ドキュメントを注意深く読み、構成をいじってみても役に立ちませんでした。構成ファイルの他の設定が考慮されるため、ファイル自体がopensslによって使用されていると確信しています。

コマンドを使用しています

openssl x509 -req -in $NAME.csr -out certs/$NAME.pem -days 3650 -CAcreateserial -CA cacert.pem -CAkey private/cakey.pem -CAserial serial

次の構成ファイルを使用しています。

[ ca ]
default_ca              = CA_default

[ CA_default ]

dir                     = /home/ca
database                = $dir/index.txt
new_certs_dir           = $dir/newcerts

certificate             = $dir/cacert.pem
serial                  = $dir/serial
private_key             = $dir/private/cakey.pem
RANDFILE                = $dir/private/.rand

default_days            = 3650
default_crl_days        = 30
default_md              = md5

policy                  = policy_any
email_in_dn             = no

name_opt                = ca_default
cert_opt                = ca_default
copy_extensions         = none

x509_extensions         = extensions_section

[ extensions_section ]

crlDistributionPoints=URI:http://example.com/crl.pem

[ policy_any ]
countryName             = supplied
stateOrProvinceName     = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

何か案は?

4

1 に答える 1

15

openssl x509上記の構成ファイルで指定した拡張構成を読み取りません。

crlDistributionPoints(少なくとも) 次の 2 つの方法で証明書を取得できます。

  1. リクエストに署名するのopenssl caではなく使用します。構成がデフォルトの場所にない場合は、必要に応じてx509渡します。-configで始まるオプションを省略した場合、提供されたコマンドのほとんどを使用できます。-CA

    openssl ca -in $NAME.csr -out certs/$NAME.pem -days 3650

  2. 質問で提供したコマンドを使用しますが、最初に v3 拡張子を含むファイルを作成します (つまりmycrl.cnf)。-extfile mycrl.cnfへの呼び出しにオプションを追加しますopenssl x509

    openssl x509 -req -in $NAME.csr -out certs/$NAME.pem -days 3650 \
      -CAcreateserial -CA cacert.pem -CAkey private/cakey.pem \
      -CAserial serial -extfile mycrl.cnf`
    

    mycrl.cnfのものが含まれます。

    crlDistributionPoints=URI:http://example.com/crl.pem

openssl cav3 拡張機能の openssl.cnf のさまざまな設定を利用するほとんどの例は、そのコマンドに依存しているため、実行したいことにより適したコマンドである可能性があります。

余談ですが、証明書で MD5 メッセージ ダイジェストを使用することはお勧めできません。

以前は SHA1 が MD5 の代替案として提案されていましたが、それも現在は非推奨になりつつあります。要求および署名操作で使用されるメッセージ ダイジェストを指定でき、サポートされているメッセージ ダイジェストを で一覧表示できますopenssl list-message-digest-commands

例として、リクエストに署名するときに SHA256 を使用できます-md sha256(openssl caまたは構成セクションdefault_md=sha256での[CA_default]設定)。

于 2012-08-19T02:27:44.373 に答える