作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
我们上一大章介绍了Kubernetes的知识,本章节我们进入中间件的讲解,这里会包含很多不同的类型组件,中间件的第一个大类我这里定义的是Web服务器。由于目前使用最广泛的Web服务器是Nginx,所以我们这里的讲解主要以Nginx服务器为主。
我们在前面介绍Nginx配置文件的时候提到过默认的主配置文件里面包含一个注释未使用的证书配置,本小节将带领大家从证书申请到配置全流程。
证书可以是针对域名的,也可以是针对IP的,也可以是自签的,也可以是权威机构签发的。自签的证书通过浏览器访问会有安全提示。权威机构签发的证书则没有这个问题(证书过期,证书未匹配上也有类似的问题)。
由于证书一般都是使用域名访问,所以我这里也演示使用域名来申请及配置证书。
1.一个注册成功的域名
由于我以前就注册过域名,所以我这里就复用我以前的域名,如果想通过这个方式来验证这个流程可以买一个最便宜的,大概需要不到20元(根据个人选择)。
2.申请证书
一般而言,权威机构签发的证书都是收费的。证书也有很多分类,不同的分类价格也略有不同,如果测试可以选择免费的证书:一种是国内云厂商提供的免费的证书(阿里云,腾讯云等),另外一种是国外的免费证书,比如Let's Encrypt。
本次演示以阿里云为例,目前阿里云免费的证书只有3个月(无论是免费证书还是收费收费证书到期以后都不存在续期的说法,所谓的续期都是重新签发,所以这证书到期都需要手工去替换证书)。
2.1 开通证书配额
2.2 开通证书
这里需要输入你注册的域名,如果你是阿里注册的域名,可以使用快速签发,如果非阿里注册则需要手工认证域名,证书才能签发成功。下个小节我们来讲解域名认证。
为什么要认证:认证的目的是证明你对这个域名有所属权或者控制权。
这里的域名如果你填写 abc.com则默认证书会附带abc.com和www.abc.com两个域名;如果你填写 123.abc.com则只会包含123.abc.com。
2.3 等待证书审核
如果未快速申请,就要在后面手工验证域名dns请求(未验证之前不会签发证书)。
2.4 下载证书
由于我们这里是以Nginx为主,所以我们这里下载Nginx的即可,不过早期我记得是一个包下载所有的证书。
3.配置证书
下载证书解压以后根据需要放置到你需要的目录,然后Nginx配置路径的时候和证书实际一致即可(需要保证Nginx进程有对应的读权限)。
server {
listen 443 ssl; # 监听 443 并启用 SSL
server_name chenhong.fun; #这里就必须和证书匹配
# SSL 证书配置(替换为你的证书路径)
ssl_certificate /root/cert/chenhong.fun.pem;
ssl_certificate_key /root/cert/chenhong.fun.key;
# 可选:SSL 增强安全配置,
# 经常遇到安全漏洞,就是改下面的参数
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# 配置日志
access_log /var/log/nginx/chenhong.access.log;
error_log /var/log/nginx/chenhong.error.log;
location / {
root /home/static;
index index.html;
}
}
#下面是可选的,确保用户无论输入http还是https都能访问到https
server {
listen 80;
server_name chenhong.fun;
return 301 https://$host$request_uri; # 自动跳转 HTTPS
}
4.验证证书
通过域名解析到服务器的IP地址,然后可以看到证书的有效性。(查看网站信息-域名安全-证书有效)就可以看到类似下面的内容。
这样我们就完成从证书申请,配置到测试,如果要继续使用,我们需要在到期前重新申请证书-下载证书-上传配置证书-重载Nginx。
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。