SAN対応 x.509 証明書を取得するためのCSRを作成する
SAN is ナニ
SubjectAltNameの意で、複数のDNS名(ホスト名)を扱う場合に利用するx.509証明書のオプションです。
これを利用することにより、複数のホスト名を取り扱うx.509証明書を作成できます。
SAN対応 x.509 証明書を作成する
ここでは以下の2つの階層で利用できる x.509 証明書を発行するためのCSRを作成します。
- test.local
- *.test.local
openssl-san.conf を作成する
以下の内容でopenssl-san.conf(名称は特に問わない)を作成します。
[req]
distinguished_name=req_distinguished_name
req_extensions=v3_req
[ v3_req ]
basicConstraints=CA:FALSE
keyUsage=nonRepudiation, digitalSignature, keyEncipherment
subjectAltName=@alt_names
[req_distinguished_name]
countryName=Country Name (2 letter code)
countryName_default=JP
stateOrProvinceName=State or Province Name (full name)
stateOrProvinceName_default=Kyoto
localityName=Locality Name (eg, city)
localityName_default=Kyoto
organizationalUnitName=Organizational Unit Name (eg, section)
organizationalUnitName_default=my home
commonName = saitara
commonName_max = 64
[alt_names]
DNS.1=%HOSTNAME%
DNS.2=*.%HOSTNAME%
ホスト名を環境変数に定義する
後のワンライナーで利用するため、環境変数 HOSTNAME に証明書を作成するためのホスト名を設定します。
$ export HOSTNAME=test.local
CSRを作成する
先に設定した環境変数 HOSTNAME を有効に活用し、取得したい内容のCSRを作成します。
C/ST/L/O/OUなどはご自身の組織などにあわせて変更して下さい。
$ openssl req -new -newkey rsa:2048 -keyout ${HOSTNAME}.key.nopass \
-sha256 -nodes -extensions v3_req -subj \
"/C=JP/ST=Tokyo/L=Minato-ku/O=Iret inc./OU=cloudpack/CN=${HOSTNAME}" -out ${HOSTNAME}.csr \
-config <( cat openssl-san.conf|sed "s:%HOSTNAME%:${HOSTNAME}:g" )
以下のようなメッセージが出て、CSRが作成されます。
Generating a 2048 bit RSA private key
....................+++
.............+++
writing new private key to 'test.local.key.nopass'
-----
作成されたものを確認する
CSR
作成されたCSRを確認します。
(以下に示すものはこのエントリーのために試験的に作成したもので、実際には使われてないものです)
$ openssl req -noout -text -in test.local.csr
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=JP, ST=Tokyo, L=Minato-ku, O=Iret inc., OU=cloudpack, CN=test.local
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
00:e2:b8:a1:91:fa:ca:6b:ad:0d:bb:5a:7b:7c:66:
<略>
19:75:31:da:e5:23:1c:67:d9:fa:a7:4a:4a:44:23:
d1:9d
Exponent: 65537 (0x10001)
Attributes:
Requested Extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment
X509v3 Subject Alternative Name:
DNS:test.local, DNS:*.test.local
Signature Algorithm: sha256WithRSAEncryption
a1:27:55:64:e6:f6:15:8a:cb:f0:88:70:cc:24:f3:26:ad:ef:
<略>
c2:51:ba:96:86:97:29:f8:40:5f:f2:33:7d:0e:a2:0a:e5:96:
8c:5a:89:39
ここで
X509v3 Subject Alternative Name:
DNS:test.local, DNS:*.test.local
と出ているので期待する内容でのCSRであることが確認できます。
秘密鍵
作成した秘密鍵にはパスフレーズはないため、必要に応じてパスフレーズの設定をして下さい。
Author And Source
この問題について(SAN対応 x.509 証明書を取得するためのCSRを作成する), 我々は、より多くの情報をここで見つけました https://qiita.com/saitara/items/eda74ac6a950122b5f31著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .