1
在被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规则配置如图

clipboard.png

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配置,显示如下:

clipboard.png

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

实在不行重启主机吧……

2、部署结果

clipboard.png


半叶森
791 声望8 粉丝

老想着搞个大新闻~