ESXi管理画面の通信エラーをLet’s Encriptで解消

連日ESXi関連になってしまいますが、今日のは特に意味がない記事になるかもです(笑)

何がしたいかというと、Webで設定できる機器でたまにある自己証明でブラウザがエラー出すやつ、あれなんかむかつきません?



それを解決しようと思いまして、今回はESXiで何とかしてみたって感じです。

完全に自己満足な記事だし、前提条件としてDNSが必要だったりしますけど、まぁホントにわかる人で興味ある場合だけ見てもらえればと思います。

1.証明書の取得

まず、入れ替えに使う証明書の取得ですが、うちの環境は少々複雑であてにならないのでここらへんでも参考にしてください。(投げやりw)

で、取得したファイルのうち「cert.pem」と「privkey.pem」を使います。
場所は多分「/etc/letsencrypt/live/[ドメイン名]/」あたりにあるはず。

で、中身はこんな感じ

○cert.pem

—–BEGIN CERTIFICATE—–
MIIFXzCCBEegAwIBAgISA26xcbRNFl14QNIj0UgbwBopMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDAOJpS64m6OlACeiGG7Y7g9Q+5/50iPukjyiTAZ3d8dv+AAABaVZZwWIAAAQDAEgw

~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~

C9jFPP6eOJYUE24O2sva5r3ygaojBwbrEked2DN5ldo387fhra8oOWEVBzWW8y1h
YYEMeN0Wmf3lMHChOfpBO/nXMwU7joaBQAAlV7rnYIJWrK8=
—–END CERTIFICATE—–

○privkey.pem

—–BEGIN PRIVATE KEY—–
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDsJTwhCaqExV+k
PMjg7DwxV73TuD6R7o7xkzjs5ceoWUk6T+klo8MhMsStlv36bDvImz2+6sV9eDcy
dlxkqz1d0QKBgCkBFZiaqDQ5e4e7XcdnM8jn8vA7yD4F1QbqXnvVY45/6rpQbcwI

~~~~~~~~~~~~~~~省略~~~~~~~~~~~~~~~~~~~~~~

IEkGB8mivXb5T69/Zz59SHoIZ0wyk/84YTuJzVINkx5mUq6DaTuwy/HLv5vqeYYL
8QWy7zZLC8W7/RdqxkFp5SE=
—–END PRIVATE KEY—–

2.ESXiの証明書と秘密鍵を書き換える

この作業をやるときESXiの管理画面からSSHを有効化する必要があるのでその点は注意!

無事、ESXiにSSHで接続できたら以下のファイルを手順1で取得した内容に書き換える!
※心配な人はコピーしてバックアップを取っておきましょう!

証明書:/etc/vmware/ssl/uri.crt
秘密鍵: /etc/vmware/ssl/uri.key

注意点としては秘密鍵が読み込み専用で普通にやるとエラーがでるので、パーミッションを変更するなり、強制書き込みするなりして対応しましょう。
※viで強制書き込みするには「:wq!」です!

3.変更を適用する

GBUIの再起動すると適用されます。
※詳細はこちらを参照!

ただまぁ、SSHでつないでる状態なんで以下の2つのコマンド実行すれば行けます。

コマンド1:/etc/init.d/hostd restart
コマンド2: /etc/init.d/vpxa restart

するとこんな感じなりエラーが消えます!

4.最後に

今回紹介した手順でエラーは消えるんですが、実は、Let’s Encriptの証明書は有効期限が3ヶ月しかないので、やってから3ヶ月後には元のエラーに元通りです・・・w

ESXiもベースはLINUX系なのでcronで自動化できないかと思ったんですが入ってなかったりするのでなかなか難しいですねー

できるとしたらESXiのSSLを常時有効化しといて別のサーバから接続して処理やらせるくらいですかね

たかだか証明書の更新にそこまでリスクおかせないのでまぁ、自分の場合は3ヶ月に一回やればいいかなーで納得しましたw

ほんと、自己満足だけですが気になっていた人で3ヶ月に1回作業できそうな人はお試しくださいw