そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

Proxmox7.4の初期設定(4)カスタム証明書の作成とアップロード

※[PR]当ブログの記事の中にはプロモーションが含まれています。

・Proxmoxのサーバ証明書をプライベート証明書に変更する手順を知りたい。
・具体的な手順を分かりやすく教えてほしい。

こういった疑問に答えます。

本記事の内容

  1. Proxmoxのサーバ証明書を社内のプライベートCAで署名したプライベート証明書に変更する手順

サトナカ (@souiunogaii)

この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。

こういった私が、解説していきます。

私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。

Proxmoxのサーバ証明書を社内のプライベートCAで署名したプライベート証明書に変更する手順

Proxmox7.4をインストールしてそのまま利用していると、
サーバ証明書の警告がブラウザに表示されてしまい、
気持ちが悪いので、社内プライベートCAで署名したプライベート証明書に変更することにしました。

手順①Proxmoxサーバで秘密鍵ファイルを作成

opensslは既にインストール済

root@sv-sirius:~# apt install openssl
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
openssl はすでに最新バージョン (1.1.1n-0+deb11u4) です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
cd /etc/ssl/private
openssl genrsa -aes128 -out sv-sirius.key 2048

秘密鍵ファイルの作成

root@sv-sirius:/etc/ssl# cd /etc/ssl/private
root@sv-sirius:/etc/ssl/private# openssl genrsa -aes128 -out sv-sirius.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
.................................+++++
..............................................................+++++
e is 65537 (0x010001)
Enter pass phrase for sv-sirius.key: ★★★パスフレーズ★★★
Verifying - Enter pass phrase for sv-sirius.key: ★★★パスフレーズ★★★

秘密鍵ファイルからパスフレーズを除去

root@sv-sirius:/etc/ssl/private# openssl rsa -in sv-sirius.key -out sv-sirius.key
Enter pass phrase for sv-sirius.key: ★★★パスフレーズ★★★
writing RSA key

手順②署名要求ファイルを作成

openssl req -new -days 3650 -key sv-sirius.key -out sv-sirius.csr -addext 'subjectAltName = DNS:sv-sirius.planet.space.com,DNS:*.sv-sirius.planet.space.com'
root@sv-sirius:/etc/ssl/private# openssl req -new -days 3650 -key sv-sirius.key -out sv-sirius.csr -addext 'subjectAltName = DNS:sv-sirius.planet.space.com,DNS:*.sv-sirius.planet.space.com'
Ignoring -days; not generating a certificate
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) [AU]:JP ★国名★
State or Province Name (full name) [Some-State]:Tokyo ★都市名★
Locality Name (eg, city) []:Shinagawa-ku ★市町村名★
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SIRIUS Inc. ★会社名★
Organizational Unit Name (eg, section) []:SIRIUS SYSTEM 2023 ★部門名★
Common Name (e.g. server FQDN or YOUR name) []:sv-sirius.planet.space.com ★サーバ名★
Email Address []:admin@sv-sirius.planet.space.com ★架空のメールアドレス★

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: ★空のままEnter★
An optional company name []: ★空のままEnter★

出来上がった署名要求ファイルの中身を表示

openssl req -text < sv-sirius.csr
root@sv-sirius:/etc/ssl/private# openssl req -text < sv-sirius.csr
Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: C = JP, ST = Tokyo, L = Shinagawa-ku, O = SIRIUS Inc., OU = SIRIUS SYSTEM 2023, CN = sv-sirius.planet.space.com, emailAddress = admin@sv-sirius.planet.space.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:c9:38:bb:c6:7c:e6:04:10:df:70:a5:79:74:69:
      中略
                    6b:b0:a7:4b:a7:17:cc:e4:dc:bb:99:aa:cd:e6:16:
                    b8:e0:94:81:e7:a9:e0:4a:0c:7c:b6:46:61:66:5c:
                    f2:d3
                Exponent: 65537 (0x10001)
        Attributes:
        Requested Extensions:
            X509v3 Subject Alternative Name:
                DNS:sv-sirius.planet.space.com, DNS:*.sv-sirius.planet.space.com
    Signature Algorithm: sha256WithRSAEncryption
         47:fb:4b:1f:f5:fe:01:db:29:0b:98:c5:dd:fc:b3:5f:e4:b9:
   中略
         cc:98:12:1d:6f:2c:2f:92:18:3b:59:b1:59:fb:52:94:cc:13:
         90:2f:31:de
-----BEGIN CERTIFICATE REQUEST-----
MIIDWTCCAkECAQAwgb0xCzAJBgNVBAYTAkpQMQ4wDAYDVQQIDAVUb2t5bzEVMBMG
中略
F0gkaH92aT49JXCncTx2HbQlM0cF7hPMmBIdbywvkhg7WbFZ+1KUzBOQLzHe
-----END CERTIFICATE REQUEST-----

手順③秘密鍵ファイルと署名要求ファイルをダウンロード

手順④プライベート中間CAサーバ側に秘密鍵ファイルと署名要求ファイルをアップロード

mkdir /etc/pki/interCA/sv-sirius
[root@SV-IXION ~]# mkdir /etc/pki/interCA/sv-sirius

cp /etc/pki/tls/openssl.cnf /etc/pki/tls/openssl-sv-sirius.cnf
[root@SV-IXION interCA]# cp /etc/pki/tls/openssl.cnf /etc/pki/tls/openssl-sv-sirius.cnf

手順⑤プライベート中間CAにて署名しサーバ証明書を発行

openssl ca -in /etc/pki/interCA/sv-sirius/sv-sirius.csr \
-out /etc/pki/interCA/sv-sirius/sv-sirius.crt \
-keyfile /etc/pki/interCA/private/interCA_key.pem \
-cert /etc/pki/interCA/interCA_cert.pem \
-config /etc/pki/tls/openssl-sv-sirius.cnf \
-policy policy_anything
[root@SV-IXION tls]# openssl ca -in /etc/pki/interCA/sv-sirius/sv-sirius.csr \
> -out /etc/pki/interCA/sv-sirius/sv-sirius.crt \
> -keyfile /etc/pki/interCA/private/interCA_key.pem \
> -cert /etc/pki/interCA/interCA_cert.pem \
> -config /etc/pki/tls/openssl-sv-sirius.cnf \
> -policy policy_anything
Using configuration from /etc/pki/tls/openssl-sv-sirius.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 13 (0xd)
        Validity
            Not Before: Jun  9 09:43:08 2023 GMT
            Not After : Jun  8 09:43:08 2024 GMT
        Subject:
            countryName               = JP
            stateOrProvinceName       = Tokyo
            localityName              = Shinagawa-ku
            organizationName          = SIRIUS Inc.
            organizationalUnitName    = SIRIUS SYSTEM 2023
            commonName                = sv-sirius.planet.space.com
            emailAddress              = admin@sv-sirius.planet.space.com
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:FALSE
            Netscape Cert Type:
                SSL Server
            X509v3 Key Usage: critical
                Digital Signature
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                72:D1:05:30:A3:BB:71:D9:9F:4D:89:11:93:9F:12:B7:F5:EB:4E:01
            X509v3 Authority Key Identifier:
                keyid:18:35:2E:96:D7:6A:E6:3E:AB:84:4D:0E:58:42:9D:92:65:19:3D:05

            X509v3 Subject Alternative Name:
                DNS:*.sv-sirius.planet.space.com, DNS:sv-sirius.planet.space.com
Certificate is to be certified until Jun  8 09:43:08 2024 GMT (365 days)
Sign the certificate? [y/n]:y ★yで応答★


1 out of 1 certificate requests certified, commit? [y/n]y ★yで応答★
Write out database with 1 new entries
Data Base Updated

出来上がったサーバ証明書をダウンロード

手順⑥Proxmoxのコンソール画面からカスタム証明書をアップロード

手順⑦ブラウザを再起動して確認

やったぜ!