如何用建木CI创建SSL证书并部署到nginx
介绍 超文本传输协议 HTTP 协议用于在 Web 浏览器和 Web 服务器之间传输信息。 HTTP 协议以明文形式发送内容,而不提供任何数据加密方式。如果攻击者截获 Web 浏览器和 Web 服务器之间的传输消息,他可以直接读取信息。为了解决 HTTP 协议的这个缺陷,需要给 HTTP 添加一个证书,将其升级为:Secure Socket Layer 超文本传输协议 HTTPS。为了数据传输的安
介绍
超文本传输协议 HTTP 协议用于在 Web 浏览器和 Web 服务器之间传输信息。 HTTP 协议以明文形式发送内容,而不提供任何数据加密方式。如果攻击者截获 Web 浏览器和 Web 服务器之间的传输消息,他可以直接读取信息。为了解决 HTTP 协议的这个缺陷,需要给 HTTP 添加一个证书,将其升级为:Secure Socket Layer 超文本传输协议 HTTPS。为了数据传输的安全,HTTPS 在 HTTP 的基础上增加了 SSL 协议。 SSL 依靠证书来验证服务器的身份,并对浏览器和服务器之间的通信进行加密。
我们和用户之间的信息怎么会被别人偷听到?所以我们需要给我们的网站加一层“保护套”(SSL/TSL)
这时候你可以选择建木CI提供的解决方案:使用acme SSL节点快速为你的网站加一个“保护套”!
目前acme-ssl节点支持阿里云作为DNS服务解析器创建域名证书。华为云和腾讯云稍后会加入。
申请域名
要向ca申请证书,首先要拥有自己的域名。目前支持阿里云作为DNS解析器,所以我们要从阿里云购买一个域名
为你的域名申请证书
使用建木词安排acme SSL节点为你的域名申请证书。剑木CI的安装、使用方法及剑木CI相关概念的介绍详细写在这篇博客:基于剑木CI部署maven项目,欢迎围观
定义管道申请证书,
名称:acme-ssl
描述:pip 的 acme-ssl
管道:
极致_sh:
输入:“acme_ssl_aliyun:1.0.2”
参数:
申请哪个域名的证书
domain: "\*.黄西.Asia"
填写你的邮箱
邮箱:“1014231151@qq.com”
#阿里云的AccessKey。具体访问方式请参考阿里云官网
阿里_Kiya: ((Ali.Kiya))
具体访问方式请参考阿里云官网
阿里_secret: ((ali.secret))
#通过public dns检查如果为真,等待20秒,acme SH会使用cloudflare public dns或者google dns来检查记录是否有效。
如果参数为假,acme SH 会等待 10 秒,什么也不做。在测试阶段,我们将此值设置为false,因此我们不必检查公共dns
dns_check: 假
选择一个CA组织。支持的 CA 可以是letsencrypt 或letsencrypt_test,buypass,buypass_test,zerossl,sslcom。
默认是zerossl,buypass、buypass_test和sslcom是向CA机构收费
ca:“zerossl”
以下两个节点是复制数据节点。目的是将生成的私钥和证书发送到我们的服务器
scp_cert:
类型:scp_resouce:1.1.0
参数:
目标服务器的主机ip
ssh_ip: xxx.xxx.xxx.xxx
服务器私钥
ssh_private_key: ((xxx.server_private_key))
将哪个文件夹同步到目标服务器。如果目标服务器没有这个文件夹,会自动创建并同步
远程_文件:/tmp/hx/fullchain.cer
哪个文件会同步到服务器?在这里,证书将同步到服务器
本地_文件:${acme_sh.cer_path}
scp_key:
类型:scp_resouce:1.1.0
参数:
ssh_ip: xxx.xxx.xxx.xxx
ssh_private_key: ((xxx.server_private_key))
这里,私钥同步到服务器
远程_file: /tmp/hx/*.huangxi.asia.key
本地_文件:${acme_sh.key_path}
将进程dsl复制到建木CI并开始运行进程。让我们等待acme SSL节点为我们申请证书
等待之后,进程已经全部跑通
来到虚拟机,检查复制的证书和私钥。此时的心情就是一个字,清爽~
将证书私钥部署到服务器
在我们获得证书和私钥后,我们可以将它们部署到我们的服务器上。这里使用 nginx 作为我们的 web 容器
- 安装nginx
[root@huangxi ssl]# yum -y 安装nginx
- 查看nginx的位置。 nginx启动的二进制文件位于/usr/sbin/nginx,配置文件位于/etc/nginx/nginx conf
[root@huangxi ssl]# nginx在哪里
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man3/nginx.3pm.gz /usr/share/man/man8/nginx. 8.gz
- 启动nginx
[root@huangxi ssl]# nginx
- 修改nginx的配置文件
# 将如下配置添加到http缓存中
服务器{
开启 ssl 443 端口监听
听 443 ssl;
对应的域名,放* huangxi.只需将亚洲更改为您自己的域名
server_那么 *.黄西.Asia;
配置从acme SSL节点获取证书的路径
ssl_certificate /tmp/hx/ssl/fullchain.cer;
配置从acme SSL节点获取私钥的路径
ssl_certificate_key /tmp/hx/ssl/*.huangxi.asia.key;
ssl_session_cache 共享:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl\prefer\server\ciphers 开启;
位置 / {
根html;
索引 index.html index.htm;
}
}
服务器{
听 80;
服务器_name huangxi.asia;
即使你访问80端口,也将他重定向到443端口
改写 ^/(.*)$ https://*.huangxu.asia:443/$1 永久;
}
- 验证nginx配置文件是否配置正确
[root@huangxi nginx]# nginx -t
nginx:配置文件/etc/nginx/nginx.conf 语法没问题
nginx:配置文件/etc/nginx/nginx.conf 测试成功
- 重新加载nginx配置文件
[root@huangxi nginx]# nginx -s reload
测试证书是否有效
打开我们的浏览器,输入www.huangxi.asia(在这里输入您自己的域名)
如上图所示,我们访问了nginx默认的欢迎页面。可以看到我们使用https协议访问,证书是有效的。至此,我们已经成功为我们的网站加了一层“保护罩”
本文为建木博主“自由”的原创投稿。如需转载,请联系授权人员。
向(官方):https://jianmu.dev
项目(托管:https://gitee.com/jianmu-dev
项目(文档:https://docs.jianmu.dev
在线体验:https://ci.jianmu.dev
更多推荐
所有评论(0)