opensslを利用し、自己署名証明書を作成する手順を説明します。
- 自己署名証明書は、テスト目的や限られた利用者が使用する場合など、認証局(CA)の署名を必要としない場合に使用します。
- 自己署名証明書でSSTPを運用する場合は、クライアント端末にもそれぞれ証明書をインポートする必要があります。
- この手順により、RSA秘密鍵、証明書(自己署名)、および署名リクエスト(CSR)が作成されます。
- opensslコマンドが使用可能なPC等が用意してあるものとします。
- 設定パラメータを用意する
表 1. 用意する情報
項目 |
値 |
備考 |
Country Name: |
JP |
ISOによる2文字の国名符号 |
State or Province Name: |
Tokyo |
都道府県名 |
Locality Name: |
Chiyoda |
市区町村 |
Organization Name: |
Example inc. |
組織名 |
Common Name: |
vpn.example.jp |
サーバ名【重要】
- ここで指定する文字列をFQDNとしてSEILにアクセス可能である必要があります。(DNSのAレコード登録やPCのhostsデータベース登録など)
- DNSやhostsが利用できない場合は、FQDNではなくIPアドレスを指定してください。
|
- RSA秘密鍵を作成する
$ openssl genrsa -out rsa-secret.key 1024
Generating RSA private key, 1024 bit long modulus
.................................++++++
.................................++++++
e is 65537 (0x10001)
$
【内容の確認】
$ cat rsa-secret.key
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC9mu5FBa5TR35uZpEiG4ZAQ54KqMaG7ZOGF+qe3gZ54oLLyqrz
/hx2ehx7tlr+3Ty7EgfDO5r2gbpsXXgp2Vs1jRUfU6MDEdA0NE9Qth9GUm6VeEjD
- 省略 -
LKc9054WTDZ2I4zjA1UCQEaYLzJGIS11DV7ogNeaxrBnQjSG8h1dXC5dDe5oH9o0
ku+PPXWVbD5tjVoFigQPIPvyrMLxlNkhC+mUuba23c0=
-----END RSA PRIVATE KEY-----
$
- RSA秘密鍵のファイル名は"rsa-secret.key"としています。
- 鍵長は1024bitとしています
注: RSA秘密鍵は厳重に管理してください。
- 署名リクエスト(CSR)の作成
$ openssl req -new -x509 -days 30 -key rsa-secret.key -out request.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Tokyo
Locality Name (eg, city) [Newbury]:Chiyoda
Organization Name (eg, company) [My Company Ltd]:Example inc.
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:vpn.example.jp
Email Address []:
$
【内容の確認】
$ cat request.csr
-----BEGIN CERTIFICATE-----
MIIDATCCAmqgAwIBAgIJAKyVK048BWqiMA0GCSqGSIb3DQEBBQUAMF8xCzAJBgNV
BAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzEQMA4GA1UEBxMHQ2hpeW9kYTEVMBMGA1UE
- 省略 -
KMGKqx1E3sc8IjhTjvRmpRqo0DhNKdDHMIKemhxr18VyCppGlPnTp+I2Sf5/XubR
uo9TLRU=
-----END CERTIFICATE-----
$
- 使用する秘密鍵に2で作成したファイルを指定します。
- 署名リクエストのファイル名は"request.csr"としています。
- "-days"には証明書の有効期間を指定します。
- コマンドを実行するとリクエストに必要な情報の入力を求められますので、表 1で用意した文字列を入力していきます。
- 証明書の作成
$ openssl x509 -in request.csr -out certificate.crt
$
【内容の確認】
$ openssl x509 -in certificate.crt -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
ac:95:2b:4e:3c:05:6a:a2
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=JP, ST=Tokyo, L=Chiyoda, O=Example inc., CN=vpn.example.jp
Validity
Not Before: Oct 6 11:06:22 2011 GMT
Not After : Nov 5 11:06:22 2011 GMT
Subject: C=JP, ST=Tokyo, L=Chiyoda, O=Example inc., CN=vpn.example.jp
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:bd:9a:ee:45:05:ae:53:47:7e:6e:66:91:22:1b:
78:29:d9:5b:35:8d:15:1f:53:a3:03:11:d0:34:34:
- 省略 -
5a:fe:dd:3c:bb:12:07:c3:3b:9a:f6:81:ba:6c:5d:
bf:63:83:d5:bc:63:82:40:0b
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
F6:C4:7C:EE:D5:1E:E2:E5:7A:A1:20:E5:21:95:7B:0C:84:35:D2:48
X509v3 Authority Key Identifier:
keyid:F6:C4:7C:EE:D5:1E:E2:E5:7A:A1:20:E5:21:95:7B:0C:84:35:D2:48
DirName:/C=JP/ST=Tokyo/L=Chiyoda/O=Example inc./CN=vpn.example.jp
serial:AC:95:2B:4E:3C:05:6A:A2
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: sha1WithRSAEncryption
8d:48:5e:ef:69:6b:24:2a:ed:7f:f0:c7:26:10:ae:06:65:3f:
- 省略 -
0a:9a:46:94:f9:d3:a7:e2:36:49:fe:7f:5e:e6:d1:ba:8f:53:
2d:15
-----BEGIN CERTIFICATE-----
MIIDATCCAmqgAwIBAgIJAKyVK048BWqiMA0GCSqGSIb3DQEBBQUAMF8xCzAJBgNV
BAYTAkpQMQ4wDAYDVQQIEwVUb2t5bzEQMA4GA1UEBxMHQ2hpeW9kYTEVMBMGA1UE
- 省略 -
KMGKqx1E3sc8IjhTjvRmpRqo0DhNKdDHMIKemhxr18VyCppGlPnTp+I2Sf5/XubR
uo9TLRU=
-----END CERTIFICATE-----
$
- 3で作成した署名リクエストファイルを指定します。
- 証明書のファイル名は"certificate.crt"としています。
以上で自己署名証明書の作成は終了です。
作成したファイルの用途
- rsa-secret.key
- RSA秘密鍵としてSEILに登録します。改ざんや紛失の無いよう厳重に管理する必要があります。
- certificate.crt
- 証明書としてSEILに登録します。また、SSTPクライアントの証明書ストアにインポートします。
- request.csr
- SEILのコンフィグレーションには使用しません。証明書作成後は不要です。