QNAP NASの管理画面へのアクセスはHTTPS通信となる。初期設定においては、NAS自体が作成したSSLサーバ証明書が導入されている。
外部公開する際は、myQNAPcloudにてLet’s EncryptなどのSSLサーバ証明書の設定を行うことができるが、内部ネットワークで使う場合は、オレオレ認証局が発行したSSLサーバ証明書(オレオレ証明書)を使いたい場合がある。
本記事では、QNAP NASにオレオレ認証局にて作成した証明書をインポートする手順を記載する。
環境
今回作業を実施した環境は以下の通り
- QNAP NAS
- 型番 : TS-231P
- QTS : 5.1.0
- オレオレ認証局用Linuxサーバ
- OS : CentOS Stream release 8
オレオレ認証局の構築
Linux環境にて秘密鍵とCSR (証明書署名要求)を作成し、CSRをもとにオレオレ認証局にて署名を行い、SSLサーバ証明書を作成する。このあたりの流れは、以下記事に詳しく記載したので参照いただきたい。
オレオレ認証書を作成
オレオレ認証局が構築されている前提にてSSLサーバ証明書の作成を行う。
今回作成する証明書関連のファイルを以下に記載する。
ファイル名 | 種別 |
---|---|
t1013qnap.key | 秘密鍵 |
t1013qnap.csr | CSR (証明書署名要求) |
san.txt | SAN (サブジェクト代替名) |
t1013qnap.crt | SSLサーバ証明書 |
1. サーバの秘密鍵及びCSR作成
QNAP NASでは秘密鍵やCSR作成をすることができないようなので、Linux上で秘密鍵とCSRを作成する。
まずは秘密鍵を作成する。
# cd ~
# openssl genrsa 2048 > t1013qnap.key
~(中略)~
Country Name (2 letter code) [JP]: ★そのままEnter
State or Province Name (full name) [Tokyo]: ★そのままEnter
Locality Name (eg, city) [Default City]: ★そのままEnter
Organization Name (eg, company) [Default Company Ltd]: ★そのままEnter
Organizational Unit Name (eg, section) []: ★そのままEnter
Common Name (eg, your name or your server's hostname) []:t1013qnap ★ホスト名などを入力
Email Address []: ★そのままEnter
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: ★そのままEnter
An optional company name []: ★そのままEnter
次にCSRを作成する。
# openssl req -new -key t1013qnap.key > t1013qnap.csr
2. SAN(サブジェクト代替名)の設定ファイル作成
SSLサーバ証明書に付与するサブジェクト代替名の情報をsan.txt
に記載する。今回はDNS名1つとIPアドレスを1つ記載した。
# cat << EOF > san.txt
subjectAltName = DNS:*.example.com, IP:192.168.11.13
EOF
3. SSL証明書を作成
CA
スクリプトを使用しCSRに対して署名を行うことで、SSLサーバ証明書を作成できる。
先ほど作成したCSRとsan.txt
を以下の通り/etc/pki/tls/misc/
ディレクトリ(CA
スクリプトを配置するディレクトリ)にコピーする。CA
スクリプトを使う場合、CSRのファイル名はnewreq.pem
にする必要があるので注意すること。
# cd ~
# cp qnap.csr /etc/pki/tls/misc/newreq.pem
# cp san.txt /etc/pki/tls/misc/
CA
スクリプトにて署名すると、newcert.pem
というファイル名でSSLサーバ証明書が作成される。
# cd /etc/pki/tls/misc/
# ./CA -sign
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/cakey.pem:
~(中略)~
Subject:
countryName = JP
stateOrProvinceName = Tokyo
localityName = Default City
organizationName = Default Company Ltd
commonName = t1013qnap
X509v3 extensions:
X509v3 Subject Alternative Name:
DNS:*.example.com, IP Address:192.168.11.13
Certificate is to be certified until Jul 19 05:53:58 2033 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
0b:41:b7:3e:ac:a2:ca:1c:2b:ec:1b:39:b2:31:8b:4a:e3:35:25:15
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=JP, ST=Tokyo, O=Default Company Ltd, CN=My Private CA
~(中略)~
eQnnVBcS0wDHX0ATguHY7krprVFGHfQVDht0ZhRgmYESXgBNP9KoudbF6hOaTrnw
2B76Kr1Sv5hS/jjFZQFutis/jI0=
-----END CERTIFICATE-----
# ls -l newcert.pem
-rw-r--r-- 1 root root 4186 7月 22 14:54 newcert.pem
CA
スクリプトで作成した証明書をコピーして保存する。
# cp newcert.pem ~/qnap.csr
【参考】CA
スクリプトを使わない場合のSSLサーバ証明書の作り方
CA
スクリプトを使わない場合のSSLサーバ証明書作成コマンドは以下となる。
# openssl x509 -days 3650 -req -signkey t1013qnap.key -in t1013qnap.csr -out t1013qnap.crt -extfile san.txt
QNAP NASにインポート
1. QNAP NASの管理画面にログイン
QNAP NASの管理画面にログインし、[コントロールパネル] > [セキュリティ] > [SSLサーバ証明書とプライベートキー]を開き、[証明書の交換]ボタンを選択する。
2. SSLサーバ証明書をインポート
[証明書の交換]ダイアログボックスが開くので、[証明書のインポート]を選択し、[次へ]を選択する。
証明書のインポート画面にて以下を選択し、[適用]ボタンを選択する。
項目 | 設定値 |
---|---|
証明書 | SSLサーバ証明書 (t1013qnap.crt) |
プライベートキー | 秘密鍵 (t1013qnap.key) |
中間証明書(任意) | 設定不要 |
3. インポート後に再度QNAP NASにアクセス
証明書インポート後の管理画面の表示は自動更新されないため、一度別の画面に遷移してから[SSLサーバ証明書とプライベートキー]の画面を再表示しよう。
発行者、代替名、有効期限が更新されていれば、正常に証明書のインポートが完了となる。
一度ブラウザを落とし、再度QNAP NASにアクセスすると、以下の通りブラウザの証明書エラーが消えることが確認できた。
以上で、QNAP NASにオレオレ認証局にて作成した証明書をインポートする手順は完了となる。
0 件のコメント:
コメントを投稿