引言
最近看访问博客十分不爽,一直谷歌浏览器给我提示个“不安全”,想着自己花点时间稍微升级一下内容,把https
给搞出来。
小广告
欢迎关注拓行公众号,分享各种技术博客文章
拓行——奋勇进取,开拓未来,砥砺前行
事先准备
首先得先拥有一台服务器(公网或私网皆可),我这里准备的是一台阿里云Centos7.2
的Linux
服务器,当然,你用windows
也是可以的,但具体教程就不在这里写了。
- 可访问的服务器
- 阿里云的账号:账号下的域名(不是必须,但如果是账号下就更方便)
- 拥有服务器的
root
权限 - 有一台已经搭建好
nginx
的服务
1. 申请证书
首先登录阿里云的控制台(阿里云),如下图
然后输入你绑定的账号密码,进去之后点击左上角的按钮,弹出菜单,输入ssl
,然后选择这个“数字证书管理服务”
每个账号有40个免费SSL
证书可以申请(白嫖的)
点击这个创建证书按钮,然后就能出来一个待审核的证书
然后点击证书上的申请按钮
之后填写你的信息,如果你像我一样是在账号下的域名,就可以填写为自动验证,域名是你网站的访问域名,每个人不同,其他默认就行,如果你不是在账号下,就需要自己手动创建DNS解析验证了(需要证明这个域名是你的)
点击提交审核,底下就会有个绿条,代表在审核中了,等一会
然后外边就显示正在审核,等着就完了
2. 下载到本地
等了几分钟之后,你绑定的手机号就会收到短信,阿里云应该也有个站内信,可以看到邮件啥的
接下来就可以登录刚刚的控制台,继续玩耍了,找到你刚刚签发的域名(一般只有一个,如果是一级域名的主域名解析,那么这一个证书会同时兼容www
的二级域名)
找到你的域名之后,点击右侧的“下载”按钮,会从右侧弹出个窗口(如果你没有下载按钮,就注意一下左侧的状态是否是正常的已签发状态,等一会审核就过了)
点击右侧对应的证书,点击下载,我这里用的是Nginx
服务器,你如果用得是Apache
或者IIS
,可以对应下载,后续配置有所不同
然后看到你下载的文件,这里是个以nginx.zip
结尾的压缩包,下载完,打开它,解压出来
这是个证书编号_域名_应用服务器
的文件夹,如果你跟我一样是Nginx
服务器的话,解压下来应该是两个文件,一个.key
文件,一个.pem
文件
3. 上传并绑定服务器项目
将这两个文件传到服务器上,你可以使用宝塔或ftp
方式,当然,也可以像我这样使用finalshell
软件上传(纯属个人喜好)
然后将这两个文件移动到你的nginx
文件证书目录下,我是新建了个目录,相对路径为nginx安装目录/conf/cert/xx.key
和nginx安装目录/conf/cert/xx.pem
,如下图
然后将这个域名对应的配置文件打开,进行配置,我这里给各位一份范例,具体配置还得参考各位自己的实际情况的!
# 网站 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
进行配置文件的检查,如果你看到的反馈跟我一样,那么恭喜你,至少路径和基础配置没啥大毛病!
然后使用nginx -s reload
命令,使配置生效并且重启,如果一点反应都没有的话,就像我这样,不用怀疑,nginx
就是这个尿性,成功了!
4. 测试使用
打开你的域名,然后注意地址栏要使用https://域名
,谷歌浏览器如果有个小锁的图标,恭喜你,完成了!
瑞思拜~下班!