読者です 読者をやめる 読者になる 読者になる

カラクリサイクル

『輝かしい青春』なんて無かった人の雑記

TLS/SSL の自己署名証明書の管理には `caman` というツールが便利

Development Knowledge Software

本日の小ネタ。


github.com

最近、 TLS/SSL の自己署名証明書使って、 Basic 認証の代わりに TLS クライアント認証したいなーとか考えていたものの、 ターミナルとかで openssl コマンドを生で叩くのもめんどくさい! なんか良いツールないんか!? という時に見つけたヤツです。


で、使い方に関して言えば、リポジトリ内の README.md 読んだ方が早いんだけど、 自己署名証明書使ってクライアント認証するための証明書を作るには、 caman の Certificate Authority の初期化を済ませた後、

# ユーザー名で設定ファイルなどを作成
$ caman new $USERNAME

# vim とかで各 host or username 要の `openssl` の設定ファイル
# `config.cnf` の `v3_req` セクションにクライアント認証の設定を追加
$ vim store/${USERNAME}/config.cnf

# 実際に署名
$ caman sign $USERNAME

という感じで出来る。

ちなみに実際の設定ファイルはこんなの:

[ ca ]
default_ca              = local_ca

[ local_ca ]
# Default expiration and encryption policies for certificates
# 10 years for certs
default_days            = 3650

[ req ]
prompt                  = no
distinguished_name      = host_distinguished_name
req_extensions          = v3_req

[ host_distinguished_name ]
# >> Change the following 4 variables:
#   countryName must be 2 character character code
countryName             = JP
stateOrProvinceName     = MIE
organizationName        = Nyarlabo!
organizationalUnitName  = Private
emailAddress            = nyarla@thotep.net
# << End changes
commonName              = nyarla

[ v3_req ]
basicConstraints        = CA:FALSE
keyUsage                = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage        = clientAuth
nsCertType              = client, email, objsign

で、この caman の実態は bash script で、かつ License も MIT なので、 まあ、色々と便利に使えるんじゃないかと僕は思います。はい。

というコトで本日の小ネタは以上です。