いちいち調べてられない!よく使うopensslコマンドまとめた
スポンサーリンク
よく openssl コマンドを使うのですが、なかなか覚えられないのが悩みです。必要になったら都度調べているのですが、効率が悪いのでそろそろ使う頻度が高いコマンドくらいは覚えてやろうと思い、まとめてみることにしました。
サブコマンドの種類を確認
そもそも、どれくらいのサブコマンドがあるのか確認してみます。openssl help
と打ってみたら、そんなコマンドないぞって怒られながらもサブコマンドの一覧を得ることに成功しました。
$ openssl help openssl:Error: 'help' is an invalid command. Standard commands asn1parse ca ciphers cms crl crl2pkcs7 dgst dh dhparam dsa dsaparam ec ecparam enc engine errstr gendh gendsa genpkey genrsa nseq ocsp passwd pkcs12 pkcs7 pkcs8 pkey pkeyparam pkeyutl prime rand req rsa rsautl s_client s_server s_time sess_id smime speed spkac srp ts verify version x509 Message Digest commands (see the `dgst' command for more details) md4 md5 rmd160 sha sha1 Cipher commands (see the `enc' command for more details) aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc aes-256-ecb base64 bf bf-cbc bf-cfb bf-ecb bf-ofb camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb camellia-256-cbc camellia-256-ecb cast cast-cbc cast5-cbc cast5-cfb cast5-ecb cast5-ofb des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb des-ofb des3 desx rc2 rc2-40-cbc rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb rc4 rc4-40 seed seed-cbc seed-cfb seed-ecb seed-ofb
うわあ、こんなにあるのか。。ちょっと引いた。
でも今回まとめるのは自分がよく使うコマンドに限定するので、まあいいか。
使い方
では、得られた一覧の上から順に使いそうなサブコマンドをピックアップしてまとめていきます。
ca
CRL を作成する
$ openssl ca -gencrl -out CA.crl
証明書を失効させる
$ openssl ca -revoke newcerts/cert.pem
ciphers
サイファースイート一覧を取得
$ openssl ciphers
crl
CRL の内容を確認
$ openssl crl -in CA.crl -text
genrsa
秘密鍵を作成(平文)
$ openssl genrsa 2024 > key.pem
秘密鍵を作成(パスフレーズ付き)
$ openssl genrsa -aes256 2024 > key.pem
公開鍵を作成
$ openssl rsa -in key.pem -pubout -out pub.pem
pkcs12
pkcs12(pfx)形式にする
$ openssl pkcs12 -export -inkey key.pem -in cert.pem -certfile cacert.pem -out racchai.p12 -caname "Private_CA"
pkcs12形式から秘密鍵を抜き取る
$ openssl pkcs12 -in racchai.pfx -nocerts -nodes -out key.pem
pkcs12形式から証明書を抜き取る
$ openssl pkcs12 -in racchai.pfx -clcerts -nokeys -out cert.pem
pkcs12形式からルート証明書を抜き取る
$ openssl pkcs12 -in racchai.pfx -cacerts -nokeys -out ca.pem
req
CSR を作成
$ openssl req -new -sha256 -key key.pem > csr.pem
CSR の内容を確認
$ openssl req -in csr.pem -text
rsa
秘密鍵のパスフレーズ解除
$ openssl rsa -in pass.pem -out plain.pem
秘密鍵の内容を確認
$ openssl rsa -in key.pem -text
s_client
SSL/TLS での動作確認
$ openssl s_client -connect www.google.com:443
証明書チェインを確認
$ openssl s_client -connect www.google.com:443 -showcerts
verify
証明書の検証
$ openssl verify -CAfile cacert.pem cert.pem
verion
バージョン確認
$ openssl version
x509
CSR に署名する
$ openssl x509 -in csr.pem -sha256 -days 365 -req -signkey ca_key.pem > cert.pem
証明書の中身を確認
$ openssl x509 -in cert.pem -text
証明書から公開鍵を取り出す
$ openssl x509 -in cert.pem -pubkey -noout
おまけ
サーバー証明書を一から作る
$ openssl genrsa 2024 > key.pem $ openssl req -new -sha256 -key key.pem > csr.pem $ openssl x509 -in csr.pem -sha256 -days 365 -req -signkey ca_key.pem > cert.pem
sshアクセス用の秘密鍵/公開鍵の作成を一発で(opensslじゃないけど)
github にアクセスするつもりで出力。
$ ssh-keygen -t rsa -f ~/.ssh/github
蛇足。
$ cat >> ~/.ssh/config <<EOS Host github HostName github.com User git IdentityFile ~/.ssh/github
まとめ
結局この記事見直せば覚えなくていいってことに気づいた。
- 作者: 結城浩
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/08/26
- メディア: 大型本
- この商品を含むブログ (13件) を見る