在被http劫持的广告坑过之后,就想着以后要弄网站就搞https的。大过年闲着没事,买了云服务器,把自己的域名重新解析绑定了一遍,最后升级成了https
阿里云
服务器ESC购买时间:2018-02-19
很久没用过,发现ESC多了个安全组规则的东西。各端口需要配置对应的授权规则才能访问,整体安全性更高了。
当前网站选择最简单的DV证书即可,花了一点时间查资料后,选择申请Let`s Encrypt免费SSL证书。
Let’s Encrypt is a free, automated, and open Certificate Authority.
一、HTTP环境
配置完成后能正常访问http环境即可
1、web服务器安装
# 安装nginxyum install nginx -y# 启动systemctl start nginx
2、配置安全组规则策略
默认会有提示,或者在云服务器ESC中二级菜单下,找到安全组
,然后配置规则
→ 添加安全组规则
,http和https规则配置如图
3、域名解析配置(略)
二、SSL证书
1、证书生成和配置
可直接使用 工具生成和配置SSL证书:
# 安装gityum install git -y# 下载工具到本地git clone https://github.com/certbot/certbot.gitcd certbot/# 这里是配置nginx服务,请根据情况运行对应命令,具体请阅读Certbot文档./certbot-auto --nginx
根据提示输入对应命令,如邮箱、选择是否继续、需要认证的域名(空格隔开)等,邮箱需要点击认证。部分命令配置用于生成本地nginx.conf
配置,显示如下:
2、SSL安全组规则策略
即配置安全组规则策略
图片中的443端口需要开启
3、重启服务并测试
nginx.conf
文件将被Certbot
工具自动配置
完成,配置完成代码如下
server { server_name lxlazy.com; # managed by Certbot root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } listen [::]:443 ssl ipv6only=on; # managed by Certbot listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/lxlazy.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/lxlazy.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot}server { if ($host = lxlazy.com) { return 301 https://$host$request_uri; } # managed by Certbot listen 80 ; listen [::]:80 ; server_name lxlazy.com; return 404; # managed by Certbot}
将默认的server配置注释掉
后,重启nginx,测试效果
systemctl restart nginx
三、其他
1、nginx重启出错解决办法
重启可能遇到以下问题 invalid PID number "" in "/var/run/nginx.pid"
,或nginx -c still could not bind
# 先查看配置,再看端口,解除端口占用后重启nginx,一般都可以解决问题# 配置nginx -t# 端口netstat -ntlp
实在不行重启主机吧……