34

以下に示すように、openssl コマンドを使用して、Linux で CA 署名付きエンド エンティティ証明書を作成しようとしています。

# openssl genrsa -des3 -out clientkey.pem 2048
# openssl req -new -key clientkey.pem -out clientcert.csr
# cp clientkey.pem clientkey.pem.org
# openssl rsa -in clientkey.pem.org -out clientkey.pem
# openssl x509 -req -days 1 -in clientcert.csr -out clientcert.pem -CA cacert.pem -CAkey cakey.pem -CAcreateserial

有効期限を日数ではなく時間単位で指定することはできますか? いくつかのテストのために、たとえば1時間の有効期限で証明書を生成する必要があります。

Openssl コマンドは、startdate と enddate を指定するいくつかのオプションをサポートしているようですが、その使用方法がわかりません。( enddate が日付と時刻の指定をサポートしている可能性があると想定しています)。

#openssl x509 -req -startdate 120814050000Z -enddate 120814060000Z -in clientcert.csr -out clientcert.pem -CA cacert.pem -CAkey cakey.pem -CAcreateserial

unknown option 120814050000Z
usage: x509 args
.
.
-startdate      - notBefore field
-enddate        - notAfter field
.
.
-days arg       - How long till expiry of a signed certificate - def 30 days
4

5 に答える 5

37

x509 コマンドの -startdate および -enddate オプションは表示オプションです。証明書に署名する代わりに ca コマンドを使用して、特定の開始時刻と終了時刻を設定できます。

次のようなことを試してください:

openssl ca -config /etc/openssl.cnf -policy policy_anything -out clientcert.pem -startdate 120815080000Z -enddate 120815090000Z -cert ca.pem -keyfile cakey.pem -infiles clientcert.csr
于 2012-08-15T07:04:22.237 に答える
4

または、ここに私が見つけた別の方法があります

テストとして、証明書を 10 分で期限切れにしたいとします。

現在の日付は 2 月 17 日
現在の時刻は午後 4 時 40 分です

まず、システムの日付を -1 日 (2 月 16 日)
に設定し、システム クロックを +10 分 (午後 4:50) に設定します。

1 日で期限切れになるように証明書を作成します。openssl x509これは、実際には今日で期限切れになることを意味しますFeb 17th

openssl x509 -req -days 1 -in clientcert.csr -signkey cert.key -out ssl.crt

次に、システムの時計と時刻を実際の日付と時刻にリセットすると、10 分で期限切れになる証明書ができました。

明らかに物事を行うための実際の方法ではありませんが、開発用の自己署名証明書を作成するのは素晴らしく簡単です。

于 2015-02-18T00:49:57.240 に答える
3

さまざまな時間単位で証明書の有効性の開始日と期間を指定できるgosslを試してください。

コマンドラインopensslの制限を克服するために開発しました。このツールは軽量で、依存関係がなく、MIT ライセンスの下で Go に実装されています。

于 2015-11-26T23:11:52.563 に答える