5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Kubernetesのcert-managerでブラウザを信用させる

Last updated at Posted at 2020-05-16

image.png
画像転用元[https://letsencrypt.org/ja/]

悪用厳禁です

この記事で紹介するのはLet's EncryptのSSL証明書を使って、一般的なブラウザからアクセス可能にするための手順を示します。
決して悪用しないでください。

Let's Encryptにハマった。。。

弊社のKubernetesにcert-managerを使って、ステージング環境のSSLを構築してありそこにIstioを導入したのがそもそもの始まり
「このサイトの通りやってある」と渡されたのがこのページ=> https://docs.microsoft.com/en-us/azure/aks/ingress-tls#verify-a-certificate-object-has-been-created

しかし、cert-managerにIstioの設定が絡むとどうしてもClusterIssuerからの要求がcert-manager-webhookに届かない様でIstioを外すために一旦cert-managerを削除

このサイトと
https://cert-manager.io/docs/installation/kubernetes/

このClusterIssuerのACME設定
https://cert-manager.io/docs/configuration/acme/

でさくっと再構築しました。
しかし、なぜかブラウザからアクセスできず。。。

curlでは --insecure を付けないと上手く接続できない事から証明書がよろしくない事が判明

何が起きたのか

こちらのLet's Encrypt公式ガイドによりますと
image.png

まさにこれに引っかかっていました。
ChromeはそもそもこのFakeルート証明書を見せてくれず、悩みまくっていました。Safariでは「証明書のFakeルート局なんて信頼してないからダメ」って教えてくれたから理解できたけど、Chrome中途半端に開いてくれたもんでなかなか気づけなかった。。。

なぜこのバグを埋め込んだのか

参考にしたサイト間で推奨してくれた認証局が違ったみたい
そもそもLet's Encryptには2つの証明書種別があり

  • ステージング用
  • 本番用

でACME / server に設定するべきURLが異なります

Microsoftのcert-manager導入手順では本番用を
cert-managerの導入手順ではステージング用を

設定する様になっていたのに気づかなかったのでした :joy:

対処

ACMEのserverにLet's Encryptの本番用URLを設定する事で回避できます。

  • 本番用URL
    • https://acme-v02.api.letsencrypt.org/directory

反対にブラウザやその他のツールではNGとされる状態を作りたい場合はステージング用のURLを設定するとたぶん再現できます

  • ステージング用URL
    • https://acme-staging-v02.api.letsencrypt.org/directory

おわり

SSLやネットワークが絡むトラブルシューティングは構成が複雑になりがちなのでとってもむずっこいです。。。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?