2023年8月26日土曜日

QNAP NASにオレオレ認証書をインポートする

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 件のコメント:

コメントを投稿

人気の投稿