k8s环境生成自签名证书配置secret tls并配置到浏览器

背景

最近公司的网站偶尔会出现“network error”的报错导致网页不稳定,打开开发者工具发现报错为“Failed to load resource: net ::ERR_CERT_AUTHORITY_INVALIED”原因为网页存在认证问题。解决措施有三种:1.申请域名购买证书;2.自己生成自签名证书;3.将https访问方式改为http。综合考虑成本和安全因素后决定使用自签名证书来解决此问题。

生成自签名证书

1.使用命令行交互方式生成证书

生成自签名证书需要用到openssl工具,先检查下服务器上有没有openssl,如果没有那就yum install openssl安装一下
生成自签名证书步骤
(1)生成一个私钥

openssl genrsa -des3 -out server.key 2048

(2)生成一个CSR

openssl req -new -key server.key -out server.csr

这里需要填写国家,城市,组织,域名等一些信息

Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:SH
Locality Name (eg, city) []:SH
Organization Name (eg, company) [Internet Widgits Pty Ltd]:XXX
Organizational Unit Name (eg, section) []:XXX
Common Name (e.g. server FQDN or YOUR name) []:XXX.com
Email Address []:XXXX

(3)生成自签名证书

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

这样我们就生成了一个简单的自签名证书

2.使用脚本方式生成自签名证书

命令行交互式方式需要一个个的手动输入国家,城市等信息很容易出错。使用脚本方式可以快速的生成自签名证书。

cat cert.sh
#!/bin/sh

filename="cert"

printf "[req]
prompt                  = no
default_bits            = 4096
default_md              = sha256
encrypt_key             = no
string_mask             = utf8only

distinguished_name      = cert_distinguished_name
req_extensions          = req_x509v3_extensions
x509_extensions         = req_x509v3_extensions

[ cert_distinguished_name ]
Country Name  = CN
State or Province Name = SH
Locality Name  = SH
Organization Name  = XXX
Organizational Unit Name = XXX
Common Name = XXX.com
Email Address = XXXX

[req_x509v3_extensions]
basicConstraints        = critical,CA:true
subjectKeyIdentifier    = hash
keyUsage                = critical,digitalSignature,keyCertSign,cRLSign #,keyEncipherment
extendedKeyUsage        = critical,serverAuth #, clientAuth
subjectAltName          = @alt_names

[alt_names]
DNS.1 = XXX.com


openssl req -x509 -newkey rsa:2048 -keyout /root/ssl/server.key -out /root/ssl/server.crt -days 3650

增加cert.sh执行权限

chmod +x cert.sh

执行cert.sh,生成自签名证书

sh cert.sh

用生成的自签名证书创建secret证书,用于域名访问

kubectl create --namespace=XXX secret tls tls-certificate-XXX.com --key /root/ssl/server.key --cert /root/ssl/server.crt

浏览器中添加证书

生成证书后我们需要将证书添加到浏览器中,否则访问网页依然会有该网站不安全的提示
在这里插入图片描述
浏览器添加证书方法如下
(1)打开浏览器设置搜索安全
在这里插入图片描述
点进去选择管理证书
在这里插入图片描述
(2)导入证书
点击管理证书,选择“受信任的根证书颁发机构”,点击导入
在这里插入图片描述
将本地的证书导入进来
在这里插入图片描述
选择将证书存储在“受信任的根证书颁发机构”
在这里插入图片描述
点击下一步,最后会提示导入成功
在这里插入图片描述

此时再次访问网页就没有https不安全的提示了

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值