Loading... ### 引言 最近看访问博客十分不爽,一直谷歌浏览器给我提示个“不安全”,想着自己花点时间稍微升级一下内容,把`https`给搞出来。 ### 小广告 欢迎关注拓行公众号,分享各种技术博客文章 拓行——奋勇进取,开拓未来,砥砺前行 <img src="https://aliyun-yuesha-public-oss.oss-cn-zhangjiakou.aliyuncs.com/usr/uploads/2023/12/654410095.png"> ### 事先准备 首先得先拥有一台服务器(公网或私网皆可),我这里准备的是一台阿里云`Centos7.2`的`Linux`服务器,当然,你用`windows`也是可以的,但具体教程就不在这里写了。 1. 可访问的服务器 2. 阿里云的账号:账号下的域名(不是必须,但如果是账号下就更方便) 3. 拥有服务器的`root`权限 4. 有一台已经搭建好`nginx`的服务 ### 1. 申请证书 首先登录阿里云的控制台([阿里云](https://www.aliyun.com/)),如下图 ![阿里云登录](https://hw13.cn/usr/uploads/2023/10/2671603774.png) 然后输入你绑定的账号密码,进去之后点击左上角的按钮,弹出菜单,输入`ssl`,然后选择这个“数字证书管理服务” ![找到数字证书管理服务](https://hw13.cn/usr/uploads/2023/10/2774828300.png) 每个账号有40个免费`SSL`证书可以申请(白嫖的) 点击这个创建证书按钮,然后就能出来一个待审核的证书 ![创建免费证书](https://hw13.cn/usr/uploads/2023/10/3474988604.png) 然后点击证书上的申请按钮 ![证书申请](https://hw13.cn/usr/uploads/2023/10/1609411605.png) 之后填写你的信息,如果你像我一样是在账号下的域名,就可以填写为自动验证,域名是你网站的访问域名,每个人不同,其他默认就行,如果你不是在账号下,就需要自己手动创建DNS解析验证了(需要证明这个域名是你的) ![填写具体信息](https://hw13.cn/usr/uploads/2023/10/3652807481.png) 点击提交审核,底下就会有个绿条,代表在审核中了,等一会 ![验证DNS](https://hw13.cn/usr/uploads/2023/10/1427381431.png) 然后外边就显示正在审核,等着就完了 ![等待审核](https://hw13.cn/usr/uploads/2023/10/1281334828.png) ### 2. 下载到本地 等了几分钟之后,你绑定的手机号就会收到短信,阿里云应该也有个站内信,可以看到邮件啥的 ![收到短信](https://hw13.cn/usr/uploads/2023/10/1118298200.jpg) 接下来就可以登录刚刚的控制台,继续玩耍了,找到你刚刚签发的域名(一般只有一个,如果是一级域名的主域名解析,那么这一个证书会同时兼容`www`的二级域名) ![证书下载](https://hw13.cn/usr/uploads/2023/10/2021268963.png) 找到你的域名之后,点击右侧的“下载”按钮,会从右侧弹出个窗口(如果你没有下载按钮,就注意一下左侧的状态是否是正常的已签发状态,等一会审核就过了) 点击右侧对应的证书,点击下载,我这里用的是`Nginx`服务器,你如果用得是`Apache`或者`IIS`,可以对应下载,后续配置有所不同 ![选择Nginx下载](https://hw13.cn/usr/uploads/2023/10/4233847624.png) 然后看到你下载的文件,这里是个以`nginx.zip`结尾的压缩包,下载完,打开它,解压出来 ![证书压缩包](https://hw13.cn/usr/uploads/2023/10/189208813.png) 这是个`证书编号_域名_应用服务器`的文件夹,如果你跟我一样是`Nginx`服务器的话,解压下来应该是两个文件,一个`.key`文件,一个`.pem`文件 ![确认证书文件](https://hw13.cn/usr/uploads/2023/10/9231424.png) ### 3. 上传并绑定服务器项目 将这两个文件传到服务器上,你可以使用宝塔或`ftp`方式,当然,也可以像我这样使用`finalshell`软件上传(纯属个人喜好) ![上传证书](https://hw13.cn/usr/uploads/2023/10/3556009055.png) 然后将这两个文件移动到你的`nginx`文件证书目录下,我是新建了个目录,相对路径为`nginx安装目录/conf/cert/xx.key`和`nginx安装目录/conf/cert/xx.pem`,如下图 ![移动到目录](https://hw13.cn/usr/uploads/2023/10/2864920117.png) 然后将这个域名对应的配置文件打开,进行配置,我这里给各位一份范例,具体配置还得参考各位自己的实际情况的! ```nginx # 网站 http 访问 server{ listen 80; server_name 你的域名; root 你的项目目录; index index.php index.html index.htm; client_max_body_size 1024M; proxy_read_timeout 240s; # 默认将http重定向到https rewrite ^(.*)$ https://$host$1 permanent; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME 你的项目目录$fastcgi_script_name; include fastcgi_params; } } # 网站 https 访问 server { set $root 你的项目目录; listen 443 ssl; server_name 你的域名; root 你的项目目录; index index.html index.htm index.php; ssl_certificate cert/你的域名.pem; ssl_certificate_key cert/你的域名.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。 ssl_prefer_server_ciphers on; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME 你的项目目录$fastcgi_script_name; include fastcgi_params; } } ``` 像我这样的配置信息,是基于我的证书目录在`nginx安装目录/conf/cert/xx.key`的,如果你们跟我不一样,需要对应修改。 修改完成后,保存退出。 然后使用超管账号(因为我的`nginx`是超管安装的,所以需要`su`命令提权) 输入命令`nginx -t`进行配置文件的检查,如果你看到的反馈跟我一样,那么恭喜你,至少路径和基础配置没啥大毛病! ![检测配置文件](https://hw13.cn/usr/uploads/2023/10/2729843520.png) 然后使用`nginx -s reload`命令,使配置生效并且重启,如果一点反应都没有的话,就像我这样,不用怀疑,`nginx`就是这个尿性,成功了! ![重启配置](https://hw13.cn/usr/uploads/2023/10/3537605349.png) ### 4. 测试使用 打开你的域名,然后注意地址栏要使用`https://域名`,谷歌浏览器如果有个小锁的图标,恭喜你,完成了! ![访问加密地址](https://hw13.cn/usr/uploads/2023/10/3976740291.png) 瑞思拜~下班! 欢迎关注拓行公众号,分享各种技术博客文章拓行——奋勇进取,开拓未来,砥砺前行 最后修改:2023 年 12 月 24 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~