どうも、Tです。
vCenter7の証明書周りについて調べ終わったので、忘れないようにまとめです。
目次
結局のところの問題点
最後に書く総括ですが、一番大切なことなので最初に書いておきます。まだ、どこにも情報がないので、検証を行ってわかった2021年8月時点の問題点です。
- ソリューションユーザー証明書のwcp証明書の有効期限が2年になっている
- wcpが切れることによりメンテナスモード操作不可など運用上の問題が発生する
- VMware推奨構成でwcpの有効期限を回避する方法は、定期的な証明書更新が必要。
- 定期的な証明書更新を回避する場合、VMware非推奨構成(カスタマイズ証明書への置き換え)をとる必要がある。
推奨構成をとりつつ・・・という最適解が見つかっていません。
2021年10月21日追記
vCenter7.0Update3でマシンSSL証明書以外の証明書有効期限が10年になりました。
そのため、下記のどちらかが最適解になります。
- マシンSSL証明書(2年)ではなく、長期間有効期限の証明書に置き換える。
- マシンSSL証明書(2年)が切れる前に、VMCAで更新する。
証明書について考える
そもそもvCenterの証明書を注視し始めたのは下記のブログがきっかけでした。
vSphereでは証明書を使用して通信の暗号化、サービスやSSOに関するログインの認証を行ってくれています。昔々は、さほど気にする必要のなかった部分ですが、vSpher6.x後半あたりに、上記ブログのように証明書の有効期限が10年から2年に短くなったことで無視できない存在になりました。
個人的に愕然としたのは、短くする告知もなく・vSphereClientなどから簡単に確認する方法の提供もなく、パッチレベルでひっそりと仕様が変更されていた点です。
証明書有効期限について悩ましい問題は色々あります。
有効期限が切れると影響がでる
有効期限が切れてしまうとvSphere Clientへログインできない、vCenterサービスが起動しないなどの問題が発生します。
Logins to vCenter Server will be affected, so any system or solution that needs to authenticate will have trouble. Similarly, numerous vSphere management operations that need to verify the validity of a security token would also have trouble (SSO operations, console accesses, etc.).
仮想マシンが動き続けるとはいえ、さすがにちょっと辛いです。
また、証明書はvSphereだけではなく外部ソリューション(Horizon、NSX、vSANなどなど)も利用するものなので影響があります。VMware製品以外のバックアップなどvCenterとの認証が必要なものも影響を受けます。
証明書の更新が必要
切れる前に証明書の更新が必要になりますが、外部ソリューションに影響するため簡単に行えないパターンも多いでしょう。これは業務負荷につながりそうです。
アップグレードで回避できない
一度2年になったものは、アップグレードで10年ににりません。vSphere6.x(有効期限2年)をvSphere7にアップグレードしても、元々の証明書をそのまま引き継ぎます。
なので、証明書のことを確認していないと、いずれどこかで問題ができます。
vSphereバージョンによってバラバラ
面倒なことに証明書周りの変更は問題も多かったこともあるのか、有効期限がバージョンによって異なります。都度都度調べていく必要があります。
下記に綺麗にまとめられています。(下記に記載があるのはSTS署名証明書についてのみです)
そもそも僕たちが求めること
証明書の目的は、セキュリティの担保です。そのために、有効期限を短くしてセキュリティを高めようという現在の世界的な流れは理解できます。
でも、インフラの基盤たるvSphereに求めるのは安定した継続稼働です。インターネット上のWeb潮流に則ってトラブルや対応が増加するのは、勘弁願いたいというのが本音ではないでしょうか。
リプレースに関わる5年、可能であればさらに長期の証明書期限を設けておいてほしいです。(証明書のセキュリティうんぬんは無視するとして・・・・)
vCenter7.0Update2の証明書で知っておくべきこと
そんなわけで、2021年8月時点の最新であるvCenter7.0Update2(7.0.2 17958471)で知識をアップデートしました。
証明書の有効期限
vCenterの証明書は役割に応じて複数存在します。vCenter以外の証明書としてESXiホストが持っているESXiホスト証明書というものがありますが記載していません。ESXiホスト証明書は従来からかわらず5年でした。
vCenter7からは、ほぼ有効期限10年の証明書になっていますが、マシンSSL証明書とソリューションユーザー証明書(wcpのみ)は2年であることは注視すべきでしょう。
- STS署名証明書:10年
- VMCAルート証明書:10年
- 信頼できるルート証明書:10年
- マシンSSL証明書:2年
- ソリューションユーザー証明書(wcp):2年
- ソリューションユーザー証明書(その他):10年
- その他証明書(data-encipherment,sms_self_signed):10年 ※1
- その他証明書(APPLMGMT_PASSWORD):なし(ストアのみ存在)※1
※1:ドキュメントに記載がなく用途がわかりませんでした。
下記の記事のまとめています。
vCenter7.ou2からは、vSphere ClientからSTS署名証明書の有効期限確認が行えるようになりました。また、vCenter7からはソリューションユーザー証明書は表示されなくなっています。
root@testvcsa [ ~ ]# for i in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list); do echo STORE $i; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $i --text | egrep "Alias|Not After"; done
STORE MACHINE_SSL_CERT
Alias : __MACHINE_CERT
Not After : Aug 9 18:31:10 2023 GMT
STORE TRUSTED_ROOTS
Alias : bd586f4de09b9362895e8e930a663b3960f1207d
Not After : Aug 4 06:31:03 2031 GMT
STORE TRUSTED_ROOT_CRLS
Alias : 72a8c297bceec137d225d56ba828e2d38e3c1641
STORE machine
Alias : machine
Not After : Aug 4 06:31:03 2031 GMT
STORE vsphere-webclient
Alias : vsphere-webclient
Not After : Aug 4 06:31:03 2031 GMT
STORE vpxd
Alias : vpxd
Not After : Aug 4 06:31:03 2031 GMT
STORE vpxd-extension
Alias : vpxd-extension
Not After : Aug 4 06:31:03 2031 GMT
STORE hvc
Alias : hvc
Not After : Aug 4 06:31:03 2031 GMT
STORE data-encipherment
Alias : data-encipherment
Not After : Aug 4 06:31:03 2031 GMT
STORE APPLMGMT_PASSWORD
STORE SMS
Alias : sms_self_signed
Not After : Aug 9 06:54:04 2031 GMT
STORE wcp
Alias : wcp
Not After : Aug 9 06:50:30 2023 GMT
マシンSSL証明書の期限切れの影響
vCenterサービスが起動しなくなります。
ソリューションユーザー証明書のwcp期限切れの影響
ホストのメンテナンスモード操作が行えなくなります。また、vSphere7.0u1から追加されたvCLSの管理にWCPサービスが使われているとのことから正常に使えているかどうかわからないという問題があります。
vCLSにつては、下記にまとめました。
ソリューションユーザー証明書は将来的に廃止される
マシンSSL証明書は、主にWebブラウザでアクセスするvSphere ClientのSSL証明書として利用されます。(vCenterの起動にも内部的に使われてるようですが・・・・)
対してソリューションユーザー証明書は外部ソリューションとの連携に使用されます。ソリューションユーザーは、将来的に廃止されるようです。※ドキュメントで記載されたものは見つかりませんでした。
5. Replace Solution user certificates with Custom CertificateNOTE: Solution user certs will be deprecated in a future release of vCenter. Refer to release notes for more details.
証明書のアプローチ方法
vSphere環境の証明書の管理方法には主に4つのアプローチがあり、VMwareとしても推奨構成と非推奨構成を定めています。
- 【VMware推奨】フルマネージドモード(VMCAデフォルト証明書モード)
- 【VMware推奨】ハイブリッドモード
- 【VMware非推奨】従属CAモード(中間CA、下位CAモード)
- 【VMware非推奨】フルカスタムモード
Webブラウザに表示される証明書エラーやセキュリティ面のことは一切かんがえずに、証明書の有効期限の観点から確認してみました。
【VMware推奨】フルマネージドモード(VMCAデフォルト証明書モード)
モードの説明
インストール後の状態でvCenterに含まれるVMCAですべての証明書を管理する方法です。
何が問題か
- マシンSSL証明書を2年毎に更新する必要があります。
- ソリューションユーザー証明書のwcp証明書の更新が必要です。
- ソリューションユーザー証明書を更新するとwcp以外の証明書の有効期限が10年から2年に置き換わります。
【VMware推奨】ハイブリッドモード
モードの説明
マシンSSL証明書を外部CAの証明書に置き換え、それ以外の証明書はVMCAで管理する方法です。マシンSSL証明書を2年以外の長期間の証明書の証明書に置き換えることができます。
何が問題か
- ソリューションユーザー証明書のwcp証明書の更新が必要です。
- ソリューションユーザー証明書を更新するとwcp以外の証明書の有効期限が10年から2年に置き換わります。
【VMware非推奨】従属CAモード(中間CA、下位CAモード)
モードの説明
VMCAを会社内にある既存CAの従属CA(下位CA)として構成する方法です。VMCAのルート証明書を置き換え、置き換え後のVMCAルート証明書により、他の証明書を発行します。
何が問題か
- 従属CAにすると、マシンSSL証明書・ソリューションユーザー証明書の有効期限が2年になるため、定期的に更新が必要になります。
【VMware非推奨】フルカスタムモード
モードの説明
全ての証明書(マシンSSL証明書、ソリューションユーザー証明書、ESXiホスト証明書)を会社の既存CAの証明書に置き換える方法です。VMCAの証明書は使用しません。
マシンSSL証明書、wcp証明書を2年より長いものに置き換えることができます。
何が問題か
- 置き換えの手順が結構面倒です。
- 将来的になくなるであろうソリューションユーザー証明書をカスタマイズすることになります。
- ソリューションユーザー証明書の置き換えによるトラブルや不具合の発生率が高まります。
まとめ
おそらくVMware社の意図としては、マシンSSL証明書はvSphere Clientから手軽に更新して、その他は触らせないスタンスにしたかったのでしょうが、wcp証明書が新たに出てきた(vSphere7から)&有効期限が2年なことにより問題が出てしまったという感じでしょうか。
そのうち、wcp証明書の有効期限も10年になるか、もしくはソリューションユーザー証明書ではない何かになると思いますが、いつになるやら・・・・。
VDIとか使っている環境では、ソリューションユーザー証明書周りは結構インパクト大きいと思うんですが、みなさんどうしてるか気になるところです。