HorizonでVDI環境を構築したときに
Connection Serverのデフォルトサーバ証明書は期間が1年となっているため
自己証明書(オレオレ証明書)を作成して設定した手順の備忘として残しています。
以下の記事を参考にさせていただきました。
CAはそのまま作成
cd /etc/ssl/hogeCA
証明書の期間は20年で作成する
CA証明書作成 -daysで期間指定する 7300日=20年
/etc/ssl/hogeCA# openssl req -new -x509 -newkey rsa:2048 -out cacert.pem -keyout private/cakey.pem -days 7300
コモンネームは*.ドメイン名で作成する
他は空白で設定する
Enter PEM pass phrase: *** パスワードを入れる 何でもよい
Country Name:
State or Province Name:
Locality Name: hogehoge
Organization Name:
Organizational Unit Name: )
Common Name: *.test.local (*.ドメイン名で作る)
Email Address:
ファイルが作成されていることを確認
/etc/ssl/hogeCA# ls
cacert.pem certs crl index.txt newcerts private serial
/etc/ssl/hogeCA# cd private/
/etc/ssl/hogeCA/private# ls
cakey.pem
サーバ証明書用の作業ディレクトリを作る
cd /etc/ssl
/etc/ssl# ls
certs hogeCA openssl.cnf private
/etc/ssl# mkdir server
/etc/ssl# ls
certs hogeCA openssl.cnf private server
/etc/ssl# cd server/
X.509 v3の証明書を作成するために以下の記事を参考にさせていただきました
extension fileを作成
/etc/ssl# vi v3.txt
v3.txtに以下を記入
subjectaltnameはドメインによって異なる
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = DNS:*.test.local,DNS:test.local (ドメイン名と*.ドメイン名2ついれる)
ファイルを確認する
/etc/ssl/server# ls
v3.txt
/etc/ssl/server# cat v3.txt
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = DNS:*.test.local,DNS:test.local
秘密鍵の作成
/etc/ssl/server# openssl genrsa -out server.key 2048
/etc/ssl/server# ls
server.key v3.txt
CSRの作成
/etc/ssl/server# openssl req -new -out server.csr -key server.key
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]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:*.test.local (*.ドメイン名)
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
作成したファイルを確認
/etc/ssl/server# ls
server.csr server.key v3.txt
自己認証CA局で署名(CA管理者)
openssl x509 -req -in /etc/ssl/server/server.csr -CA /etc/ssl/hogeCA/cacert.pem -CAkey /etc/ssl/hogeCA/private/cakey.pem -CAcreateserial -days 7300 -out server.crt -extfile v3.txt -sha384
Enter pass phrase for /etc/ssl/hogeCA/private/cakey.pem: CA秘密鍵のパスワードをいれる
/etc/ssl/server# ls
server.crt server.csr server.key v3.txt
証明書と秘密鍵をまとめてp12形式で保管する。
/etc/ssl/server# openssl pkcs12 -export -inkey server.key -in server.crt -out server.pfx
Enter Export Password: パスワードは空白でよい
Verifying - Enter Export Password:
/etc/ssl/server# ls
server.crt server.csr server.key server.pfx v3.txt
作成したserver.pfxに権限付与する 多分読み取りだけでいい?
/etc/ssl/server# ls -l
total 20
-rw-r--r-- 1 root root 1375 Apr 22 14:42 server.crt
-rw-r--r-- 1 root root 997 Apr 22 14:41 server.csr
-rw------- 1 root root 1700 Apr 22 14:40 server.key
-rw------- 1 root root 2707 Apr 22 14:43 server.pfx
-rw-r--r-- 1 root root 181 Apr 22 14:40 v3.txt
chmod 777 server.pfx
/etc/ssl/server# ls -l
total 20
-rw-r--r-- 1 root root 1375 Apr 22 14:42 server.crt
-rw-r--r-- 1 root root 997 Apr 22 14:41 server.csr
-rw------- 1 root root 1700 Apr 22 14:40 server.key
-rwxrwxrwx 1 root root 2707 Apr 22 14:43 server.pfx
-rw-r--r-- 1 root root 181 Apr 22 14:40 v3.txt
Connectionサーバの証明書変更手順は公式サイトを参照
対象のConnectionサーバに以下のファイルをコピーする
/etc/ssl/server/server.pfx
/etc/ssl/hogeCA/cacert.pem
cacert.pemはcacert.crtにリネームする
cacert.crt
証明書をインポートする(コピーしたファイルをダブルクリックでよい)
保存場所はローカルコンピュータ
証明書ストアには信頼されたルート証明機関
server.pfxもダブルクリックする
保存場所はローカルコンピュータ
server.pfxをインポートするときに このキーをエクスポート可能にするの項目にチェックを入れる
証明書ストアは個人を指定
コントールパネルからコンピュータの証明書の管理を開き
もともとコネクションサーバに適用されていた証明書のフレンドリ名をvdmから別に変える
新しい証明書のフレンドリ名をvdmに設定する
サービスからVmware horizon connectionserverのサービスを再起動する またはOS再起動
少々待ってログインすると証明書の期間が変更される