ingress创建HTTPS证书

  • A+
所属分类:Kubernetes

首先阿里云购买免费版(个人)DV证书,使用期限一年,上传证书文件到服务器上。

mkdir /root/x002-ssl
rz x002.key x002.pem

创建secret资源

kubectl create secret tls x002-ssl --cert=x002.pem --key=x002.key  -n test

修改ingress配置

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
  name: x002
  namespace: test
spec:
  rules:
  - host: x002.test.com
    http:
      paths:
      - backend:
          serviceName: fgateway
          servicePort: 80
        path: /
  tls:
  - hosts:
    - x002.test.com
    secretName: x002-ssl
status:
  loadBalancer: {}

默认情况下,如果为该入口启用TLS,则ingress将(308)重定向到HTTPS。如果要全局禁用此行为,可以在ConfigMap中使用ssl-redirect: "false";

要为特定入口资源配置此功能,可以在特定资源中使用nginx.ingres.kubernetes.io/ssl-redirect:“false”注释;

当使用集群外的SSL卸载(例如AWS ELB)时,即使没有可用的TLS证书,强制重定向到HTTPS也是有用的。

这可以通过在特定资源中使用nginx.ingres.kubernetes.io/force-ssl-redirect:“true”注释来实现。

测试验证

浏览器测试http&https强制跳转

参考文档

https://www.cnblogs.com/wzlinux/p/10159366.html

https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md#server-side-https-enforcement-through-redirect


YaLei

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: