目录大纲
一 SSL证书,HTTPS扩展知识
1.1 SSL证书就是遵守SSL协议,由受信任的CA机构颁发的数字证书
1.2 HTTPS:安全超文本传输协议,简而言之:HTTPS = http+ssl
二 免费申请ssl证书
SSL证书免费申请地址:https://freessl.cn/
大概流程,填写域名,邮箱,下载keymanager ,配置DNS,验证通过后下载证书,最终得到如下2个文件
xxx.com_chain.crt #公钥 xxx.com_key.key #私钥
三 配置SSL证书,实现https
3.1 通过ssh登录服务器,通过http或者scp将下载的2个证书文件上传到服务器目录下,路径如下:
/etc/xxx/certs/
3.2 配置nginx,最终配置如下
server {
listen 443 ssl;
server_name www.xxx.com xxx.com; #这里修改你的域名
ssl_certificate /etc/xxx/certs/xxx.com_chain.crt; #证书公钥路径
ssl_certificate_key /etc/xxx/certs/xxx.com_key.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;
root /home/xxx/; # 这里修改你网站的路径
index index.php;
location / {
if (!-e $request_filename) {
rewrite ^/(.*) /index.php?$1 last;
}
}
#php解析
location ~ [^/]\.php(/|$) {
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}
#下面配置非https跳转到https,注意修改你自己的域名
server {
listen 80;
server_name www.lakeui.com lakeui.com;
rewrite ^/(.*)$ https://www.lakeui.com:443/$1 permanent;
}3.3 如果是云服务器,需要开启443端口访问,各个平台都有说明如何开放端口访问。
到此https就配置完成了,打开网站得到如下:
四 常见问题总结
4.1 没有开启443端口会导致https无法访问
4.2 修改完nginx配置,一定要重新加载配置 nginx -s reload
4.3 如果配置完成,网站还是提示非安全,出现如下图:
大概原因是网站中加载了非https的资源文件,例如:图片,资源。自己去检查然后修改https就解决问题了
4.4 免费的ssl证书目前只支持主域名,就是只支持 www.lakeui.com , lakeui.com不支持二级域名
致此,免费ssl证书申请以及https服务器配置已经完成!赶紧给自己的网站升级为https吧,提升自己的逼格。


