0x00 为什么要安装证书
- 信息传输的保密性
- 数据交换的完整性
- 信息的不可否认性
- 交易者身份确定性
如今各大浏览器厂商不断推进Https安全访问强制性要求,为了避免以后网站数据量增多时安装证书造成不必要的麻烦(根据要求,使用Https时页面内使用的链接包括图片,js,css,socket,流媒体等都需要为Https链接),所以建议尽早安装证书。
0x01 在腾讯云申请TrustAsia免费SSL证书
该证书免费申请,有效期一年,只限单域名(泛域名收费)
登录腾讯云控制台SSL证书管理,选择申请免费证书
选择证书类型:亚洲诚信TrustAsia
填写自己的域名(图片中的域名为本文演示使用)
验证方式推荐选择手动DNS验证,文件验证会很慢而且麻烦
查看详情
按提示去你的域名管理页面添加DNS解析(你在哪买的或者申请的域名就去哪添加)
完成后在证书详情页面可以查看配置解析是否正确,如果正确只需要等待办法机构扫描验证就行了
验证成功后,腾讯云会给你发送邮件,你就可以在管理页面下载证书了(一般只要几分钟就可以完成)
0x02 Nginx配置SSL证书
下载下来的压缩包里有好几种格式的证书,我们只需要Nginx的pem证书即可,解压出来
将这crt和key两个文件(公钥和私钥)修改好名字上传到你的服务器
修改nginx配置文件
vi /etc/nginx/nginz.conf
依此例子修改server配置
server#这个server用来实现http自动跳转到https
{
listen 80;
server_name test.onbeta.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
#端口改成443
listen 443 ssl;
server_name test.onbeta.com;
root /var/www/test;
index index.html index.htm index.php;
#此处为ssl证书配置
ssl_certificate /etc/nginx/cert/test.onbeta.com.crt;
ssl_certificate_key /etc/nginx/cert/test.onbeta.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
location ~ .*\.php(\/.*)*$ {
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
}
重启nginx
sudo service nginx restart
此时如果没有报错你就可以使用https访问你的网站了
0x03 关于Windows下nginx配置
本文完全可以套用Windows下nginx的ssl证书配置,不过有一点需要注意的是:conf文件中文件路径应该使用反斜杠\
ssl_certificate D:\\nginx\cert\ssl.crt;
ssl_certificate_key D:\\nginx\cert\ssl.key;
0x04 问题解决:您与此网站建立的连接并非完全安全
如果访问你的网站浏览器地址栏没有出现绿锁,而且提示是“您与此网站建立的连接并非完全安全”,那么原因可能是你的网页引用了非https链接,查看源文件搜索"http://",想办法修改掉这些不安全链接即可