在被http劫持的广告坑过之后,就想着以后要弄网站就搞https的。大过年闲着没事,买了云服务器,把自己的域名重新解析绑定了一遍,最后升级成了https
阿里云
服务器ESC购买时间:2018-02-19
系统和版本:CentOS 7.x
web服务器:nginx(根据个人需求而定)
很久没用过,发现ESC多了个安全组规则的东西。各端口需要配置对应的授权规则才能访问,整体安全性更高了。
当前网站选择最简单的DV证书即可,花了一点时间查资料后,选择申请Let`s Encrypt免费SSL证书。
Let’s Encrypt is a free, automated, and open Certificate Authority.
一、HTTP环境
配置完成后能正常访问http环境即可
1、web服务器安装
# 安装nginx
yum install nginx -y
# 启动
systemctl start nginx
2、配置安全组规则策略
默认会有提示,或者在云服务器ESC中二级菜单下,找到安全组
,然后配置规则
→ 添加安全组规则
,http和https规则配置如图
3、域名解析配置(略)
二、SSL证书
1、证书生成和配置
可直接使用 Certbot 工具生成和配置SSL证书:
# 安装git
yum install git -y
# 下载工具到本地
git clone https://github.com/certbot/certbot.git
cd 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
实在不行重启主机吧……
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。