目录大纲
一 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吧,提升自己的逼格。