1、安装Nginx

在centos上,直接使用yum安装Nginx

1
yum install nginx -y

完成安装后,使用nginx命令启动Nginx:

1
2
3
ningx
# 或者
systemctl start nginx

此时,使用http://ip地址或者域名 可以看到Nginx的测试页面

无法访问,可以尝试重启nginx: ningx -s reload

2、ssl证书部署

可以在阿里云或者腾讯云申请免费证书, 免费期限一年, 更长期限或者其他类型,可能需要购买了。

将申请到的证书,下载到本地(key文件和crt文件)。

将证书上传到服务器/etc/nginx目录:

1
2
scp ssl.key root@xx.xx.xx.xx:/usr/nginx
scp pen.crt root@xx.xx.xx.xx:/usr/nginx

3、修改nginx配置

Nginx 配置目录在 */etc/nginx/conf.d*,在该目录创建 ssl.conf

/etc/nginx/conf.d/ssl.conf配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
server {
        listen 443;
        server_name www.example.com; # 改为绑定证书的域名
        # ssl 配置
        ssl on;
    	
    	# 证书的地址, 如果证书在/etc/nginx, 则可以只写文件名称
        ssl_certificate pem.crt; # 改为自己申请得到的 crt 文件的名称
        ssl_certificate_key ssl.key; # 改为自己申请得到的 key 文件的名称
    
    	# ssl 相关配置
        ssl_session_timeout 5m;  # 缓存有效期
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 安全链接可选的安全协议
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #加密算法
        ssl_prefer_server_ciphers on;  # 使用服务端的首选算法

        location / {
            root html;
            index index.html index.htm;
        }
    }

将http重定向到https

1
2
3
4
5
server {
    listen 80;
    server_name www.example.com; # 改为证书绑定的域名
    return 301 https://$server_name$request_uri;
}

一次额外的重定向可能会增加数百毫秒访问延迟,这不利于用户体验,并可能最终影响到网站上的业务,此外重定向通常会触发与额外域名建立连接。因为这里是同一个域名的重定向,所以可以使用rewrite避免重定向

使用rewrite避免重定向

1
2
3
4
5
server {
    listen 80;
    server_name www.example.com; # 改为证书绑定的域名
    rewrite ^(.*)$ https://$server_name$request_uri;
}

4、重启Nginx

验证nginx配置是否正确

1
2
3
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启nginx, 重新加载配置使其生效:

1
nginx -s reload

在浏览器通过https访问域名来测试HTTPS是否成功启动