5
5

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 3 years have passed since last update.

istio-ingressgateway ssl https 証明書 中間証明書 導入するよ

Last updated at Posted at 2020-03-18

はじめに

こんにちは現在サイバーエージェントの新規事業立ち上げをしている後藤です。
プロダクトで現在istio-ingressgatewayを使用しており負荷試験をかけるさいにSSLの設定がうまくいかなく原因が中間証明書をちゃんと紐付けていなかったことでした。そしてかなりそれに関する記事が少なかったのでまとめます。

最初に証明書を整理する

基本的に独自でワイルドカード証明書などをしゅとくすると以下の三つの証明書がDLできます。

  • サーバー鍵 wildcard.hoge.com.crt
  • 秘密鍵 wildcard.hoge.com.key
  • 中間証明書 CT_HOGE_20001010.crt

中間証明書について詳しく知りたい場合

サーバー鍵に中間証明書を紐づける

鍵のうしろにくっつけてファイル拡張子をpemにします。
ここではserver.pemという名前にしました。

A 文字列の部分がサーバー拡張子
B 文字列の部分が中間証明書

server.pem
-----BEGIN CERTIFICATE-----
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBB
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
-----END CERTIFICATE-----

kubenetesのsecretを登録する

# namaspace は istio-system 
# istio-ingressgateway-certs この名前で作ると自動的に反映先に作られます!
# 先ほどつくったファイルを --certの値にする --keyは秘密鍵を指定する
kubectl create -n istio-system secret tls istio-ingressgateway-certs --key wildcard.hoge.com.key --cert server.pem

gateway.ymlを作る

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: hoge-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    tls:
      mode: SIMPLE
      serverCertificate: /etc/istio/ingressgateway-certs/server.pem #先ほどのsecretが自動で入る
      privateKey: /etc/istio/ingressgateway-certs/tls.key # 先ほどつくったsecretが自動で入る
    hosts:
    - hoge.com

kubectl apply -f gateway.yml #applyする

istio-ingressgateway podを再起動する

kubectl get pod -n istio-system
NAME                                      READY   STATUS    RESTARTS   AGE
istio-citadel-8b8b4db4-vtnz7              1/1     Running   5          8d
istio-galley-7f87d7664f-89fwv             1/1     Running   0          8d
istio-ingressgateway-656b4545cf-7qs28     1/1     Running   0          45m #こいつを再帰動する
istio-pilot-747948498f-nvncr              2/2     Running   0          8d
istio-policy-7ffbb578bc-fnxv4             2/2     Running   0          8d
istio-sidecar-injector-5967cf6d7f-fg7vs   1/1     Running   0          8d
istio-telemetry-55cb8b8fc5-sxzjt          2/2     Running   5          8d
promsd-76f8d4cff8-tj87k                   2/2     Running   60         8d
# 単純にdeleteしてもdeploymentがるのでオートヒーリングさせて再起動する
kubectl delete pod -n istio-system istio-ingressgateway-656b4545cf-7qs28

確認方法

以下のようなSSLチェックできるサイトにて全てにチェックがいればOK!
https://www.digicert.com/

参考記事

istio公式ドキュメント https://istio.io/docs/tasks/traffic-management/ingress/secure-ingress-mount/
ingressに中間証明書 https://qiita.com/wataru420/items/79e66713168d6db1c798

5
5
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
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?