サーバー証明書

OpenSSL

暗号化通信ライブラリ
SSL/TLSのツールキット

秘密鍵作成

電子証明書/秘密鍵」参照
openssl
RSA方式の秘密鍵を作成
genrsa
鍵の長さ=2048bit
2048
秘密鍵ファイル名
> test.key

CSR作成

電子証明書/CSR」参照
> openssl req
-new
秘密鍵ファイル名
-key test.key
CSRファイル名
-out test.csr
-subj "
 /C=JP
 /ST=Hyogo
 /L=Nishinomiya
 /O=Example Corp.
 /DC=jp
 識別名(CommonName)=ドメイン名
 /CN=www.example.jp"

設定ファイルを読み込んでのCSR作成

設定ファイル作成

設定ファイルを複製
C:\xampp\apache\conf\openssl.cnf

C:\xampp\apache\conf\openssl-san.cnf

末尾に以下を追加
[SAN]
subjectAltName = @alt_names

[alt_names]
DNS.1=localhost
DNS.2=test

CSR作成

> openssl req
-newkey rsa:4096
秘密鍵ファイル名
-keyout test.key
-x509
-nodes
CSRファイル名
-out test.csr
識別名(CommonName)=ドメイン名
-subj "//CN=test"
-reqexts SAN
-extensions SAN
設定ファイルを指定
-config openssl-san.cnf
-days 3650

証明書作成

SSLサーバー証明書、公開鍵
電子証明書/公開鍵」参照
openssl x509
-req
有効期間=10年
-days 3650
秘密鍵ファイル名
-signkey test.key
CSRファイル名
< test.csr
証明書ファイル名
> test.crt

PKCS12(pfx)形式へ変換

openssl pkcs12
-export
証明書ファイル名
-in test.crt
秘密鍵ファイル名
-inkey test.key
個人情報交換ファイル名
-out keystore.pfx
-name test

SSH用認証暗号鍵

ssh-keygen -t rsa
対話形式での質問に全て「Enter」

~/.ssh に以下の暗号鍵が生成される
id_rsa id_rsa.pub

less id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAo9vL2+xbs4NU53fFds+iuM7b749jVCjz0x3Ok4ZOKoSGODxq
NPhkDSM7I3dWWFeV4kXyiFA3xObTbto71xRvivW/NwyPw6DphNcutEDAVIeXIEX+

PZ6HRKwK8yD+OzcJNmdHf8cSeT1TLhp7t58HQgD8lfcdgjtyo+lIk0B3fuyIqpE1
+b6ECfIXG1s92zIstIxxT1gWGrj4VaDCiU4/0dND6TpF7JlYBA==
-----END RSA PRIVATE KEY-----

JAVA KeyTool

Javaが提供する鍵と証明書の管理ツール

個人情報交換ファイル作成

> keytool
キーペアを作成
-genkey
証明書・鍵のKeyStore内での識別名
-alias test
-storetype PKCS12
暗号化方式
-keyalg RSA
-keysize 2048
ファイル名
-keystore keystore.p12
証明書の有効日数
-validity 3650
keystore.p12というファイルが作成される

証明書の登録

keytool
-import
-keystore "C:\Program Files\Java\jreX.X.X\lib\security\cacerts"
-file "test.crt"
-storepass "changeit"
-alias test

証明書の削除

keytool
-delete
-keystore "C:\Program Files\Java\jreX.X.X\lib\security\cacerts"
-storepass "changeit"
-alias test

証明書の内容表示

keytool
-list -v
-keystore "C:\Program Files\Java\jreX.X.X\lib\security\cacerts"
-storepass "changeit"
※管理者権限で実行
結果
別名: test
作成日: 2017/04/29
エントリ・タイプ: trustedCertEntry
所有者: CN=test, O=Internet Widgits Pty Ltd, ST=Some-State, C=JP
発行者: CN=test, O=Internet Widgits Pty Ltd, ST=Some-State, C=JP
シリアル番号: b4b537f59b612674
有効期間の開始日: ~ 終了日: ~
証明書のフィンガプリント:
  MD5: ~
  SHA1: ~
  SHA256: ~
  署名アルゴリズム名: SHA256withRSA
  バージョン: 1