web-dev-qa-db-ja.com

有効期限が1日未満のopenssl証明書を生成する方法は?

Linuxで、次に示すようにopensslコマンドを使用して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コマンドは、開始日と終了日を指定するいくつかのオプションをサポートしているようですが、その使用方法を理解することはできません。 (私は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
21
m.divya.mohan

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
30
runfa

gossl を試してください。これにより、さまざまな時間単位で証明書の有効期間の開始日と期間を指定できます。

コマンドラインのopensslの制限を克服するために開発しました。このツールは軽量で、依存関係なしでMIT license。

3

-daysオプションを0に設定できます。

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

これにより、notBeforenotAfterが現在の時刻に等しい証明書が作成されます(つまり、証明書はすぐに期限切れになります)。

0
assylias