Java
Apache
証明書

OpenSSLコマンドについて今一度確認

秘密鍵やCSRを作成できるOpenSSLですが、よくコマンドの意味も分からずコピペしがちなので、再度確認

ダイジェストの作成

現在日付より、SHA256の文字列を生成する。ここで暗号化アルゴリズムを指定する必要性があるのかは不明

$ date | openssl dgst -sha256 > sample.dat
$ less random.dat
(stdin)= fcc7bad796f3b5aa20c3481fa2790669ceb9d3d8565091d1f39a50083123ab52

秘密鍵の作成

3DES(トリプルDES)を利用して、ダイジェストから2048bitの秘密鍵を作成する。

$ openssl genrsa -rand sample.dat -des3 2048 > sample.key
$ less sample.key
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,CB8C441AE01D6315
yLk0ZJhLYkl8sWJC170WJ2CKIixBy6zlGCEwJCq13N39GUj4Tr20HqRzlbmtKQtv
lz93DjRSQ4uhA2EjwD7JTlHtsxEwhLYW1iKsodzBZ40e0on0sk6kK9i3/WUEHuLK
<<省略>>
-----END RSA PRIVATE KEY-----

3DESは下記の通り。つまり、3つの暗号鍵を用いて、1つの暗号鍵を作る。。。

3DESとは、暗号方式のDES(Data Encryption Standard)の安全性を高めるために考案された処理方式の一つ。異なる2つまたは3つの暗号鍵を用いて、DESによる暗号化と復号の処理を3回繰り返すことにより解読されにくくしたもの。
引用元:3DES(トリプルDES)とは - IT用語辞典

CSRの作成

秘密鍵よりCSRを作成する。このように、Base64でエンコードされたCSRを「PKCS#10」形式と呼ぶ。(RFC-2986 参照)

$ openssl req -new -sha256 -key sample.key -out sample.csr
$ less sample.csr
-----BEGIN CERTIFICATE REQUEST-----
MIIC0jCCAboCAQAwYzELMAkGA1UEBhMCYWExCzAJBgNVBAgMAmphMQswCQYDVQQH
DAJqYTELMAkGA1UECgwCamExDDAKBgNVBAsMA2FqYTEMMAoGA1UEAwwDYWphMREw
<<省略>>
-----END CERTIFICATE REQUEST-----

$ openssl req -in sample.csr -text