申请证书
xxx.com.key
:私钥文件
- 作用:属于服务器的 "私密钥匙",用于解密客户端发送的加密数据,以及对服务器响应数据进行签名(证明数据来自服务器)。
- 内容格式 :通常为 PEM 格式 (文本文件),以
-----BEGIN PRIVATE KEY-----
开头,-----END PRIVATE KEY-----
结尾,中间是经过 Base64 编码的二进制私钥数据。
xxx.com.pem
:证书文件
- 作用:属于服务器的 "公开身份证明",包含服务器域名、证书有效期、颁发机构(CA)信息等,用于向客户端证明服务器身份,并提供公钥供客户端加密数据。
- 内容格式 :通常为 PEM 格式 (文本文件),以
-----BEGIN CERTIFICATE-----
开头,-----END CERTIFICATE-----
结尾,中间是经过 Base64 编码的证书数据。
查看证书详情:
openssl x509 -in xxx.com.pem -text -noout
Validity显示了证书的有效期
sh
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
3f:f1:e6:5e:f3:10:77:0e:77:0a:25:6c:51:60:cb:48
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=CN, O=XXXXXXXX Co., Ltd., CN=Xcc Trust OV SSL CA
Validity
Not Before: Jan 14 11:14:44 2025 GMT
Not After : Jan 14 11:14:43 2026 GMT
创建 TLS Secret
sh
kubectl create secret tls xxx-tls-secret --key=xxx.com.key --cert=xxx.com.pem
查看是否创建成功
sh
kubectl get secrets xxx-tls-secret
修改Ingress资源
sh
kubectl edit secret target-ingress
yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: xxx-ingress
namespace: default # 根据实际情况修改
annotations:
kubernetes.io/ingress.class: "nginx" # 指定Ingress控制器类型
# 可选:启用HTTPS重定向
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
spec:
tls:
- hosts:
- xxx.com # 证书绑定的域名 跟下面一致
secretName: xxx-tls-secret # 引用之前创建的Secret
rules:
- host: xxx.com # 证书绑定的域名 跟上面一致
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: your-service-name # 后端服务名称
port:
number: 80 # 后端服务端口
验证证书的有效性
在 Chrome 浏览器中可按以下步骤查看当前站点证书的有效期
- 访问目标网站,确保该网站使用 HTTPS 协议。
- 点击地址栏左侧的锁形图标。
- 在弹出的菜单中选择 "证书" 或 "证书(有效)"。
- 在弹出的证书窗口中,切换到 "详细信息" 选项卡。
- 找到 "有效期" 字段,即可查看证书的起始日期和到期日期