基于k8s Ingress的网站Https部署

目前政府和企业网站基于安全考虑,新建网站上线前更多的要求使用https加密网站。同时企业新购的安全设备也会默认加强对非Https网站的校验,进而导致各种系统稳定性问题。另外,第三方接口对接时,第三方平台往往对接口有更严格的安全要求。例如钉钉应用,微信小程序等,无不要求提供https的接口。
网站在k8s Ingress的Https部署主要分为三步:
1、创建或购买证书;
2、创建secret;
3、配置ingress的tls;

一、SSL证书获取

首先,我们需要一个ssl证书。证书来源主要有两类,网站购买或基于openssl等工具生成自签名证书。网站购买证书一般涉及到费用,免费的证书只能给单域名使用,且有效期只有一年,一年后需要重新申请。自签名证书完全免费,但是在访问网站时,浏览器安全机制会提示证书无效,需要手动确认才能进入网站。正式商用网站一般不会使用自签名证书,不过接口可以使用这种方式进行加密传输。下面分别介绍两种证书的生成方式。</p>

1、阿里云DV证书申请(免费)

首先登陆阿里云控制台,在SSL证书菜单下进行购买。



购买完成以后直接申请证书



下一步进行域名解析,域名是自己账号下的话会自动添加域名解析记录。否则需要在域名解析下进行手动配置。
域名解析处添加TXT记录的解析:

申请完成后等待厂商审核。审核完成即可下载证书文件。可以根据自己的部署方式来选择。



在k8s中部署,则选择Nginx类型的证书文件。下载下来为压缩包,解压后为key和pem文件。至此,阿里云免费证书申请完成。

2、自签名证书生成

自签名证书的申请十分简单,在此,以Centos 7.5系统下制作证书为例进行说明。

1)安装openssl

yum install openssl -y

2)创建证书

openssl genrsa -out ued.inc.site.tls.key 2048
openssl req -new -x509 -days 3650 -key ued.inc.site.tls.key -out ued.inc.site.tls.crt -subj "/C=CN/ST=Zhejiang/O=FPI Inc/CN=Fpi Encryption Everywhere TLS CA"

二、创建k8s的secret

对于熟悉k8s的同学来说,创建secret非常简单。命令如下:

#阿里云DV证书
kubectl create secret generic dev-ssl-secret --from-file=tls.key=./4935435_gis-dev.fpi-inc.site.key --from-file=tls.crt=./4935435_dev.inc.site.pem -n dev
 
#自签名证书
kubectl create secret tls ued-secret --key ued.inc.site.tls.key --certued.inc.site.tls.crt -n ued

三、Ingress部署

只需要在Ingress的spec下面指定tls,然后刷新ingress即可。如图:



最后是配置好以后的效果和区别



©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容