OpenSSL や GnuTLS を利用して、
任意の日時を有効期限に指定した自己署名証明書を生成するスクリプトを書きました。
だいぶニッチなスクリプトですが SSL のテストかなにかに使えるかもしれません。
さらにそれらを利用して、
有効期限がだいぶ長い (100 年間とか 9999 年間とか) SSL 証明書を作ろうとしてみました。
OpenSSL で 100 年間有効な証明書を作る
は
OpenSSL のコマンドラインツールを使って自己署名証明書を生成するスクリプトです。
$ sudo apt-get install openssl
$ wget $ chmod +x
$. /
Usage:. /
| |.. | |o=o. S | |+=o.... | |= = oo | |oE O+.. | |o. *. =+ | +-----------------+ Signing certificate... 残念ながら 1970年1月1日00:00:00+0000 (Unix エポック) 開始の証明書しか作れませんでした。 GnuTLS の API を見ると gnutls_x509_crt_set_activation_time() や gnutls_x509_crt_set_expiration_time() などで time_t を使って時刻をセットするようになっており、どうやらこれが仕様のようです。 ついでにいうと 32bit アーキテクチャでは time_t が 32bit のため 2038 年までの証明書しかつくることができませんでした。 おわりに OpenSSL と GnuTLS の標準フロントエンドツールで 9999 年間有効な証明書を作ろうとしたけど、結局駄目だったというお話でした。 今のところ最高で 1950 年開始の SSL 証明書しか作れていません。 OpenSSL ライブラリであればそれより前の開始時刻にも対応していると思うので 自分でツールを書けば作れるのでしょうが、 そんな時間もないのでここらで終わりにしたいと思います。 2015/02/01 07:51:00 JST