Nginx配置SSL证书实现HTTPS方式访问

本文最后更新于:1 年前

获取SSL证书

土豪大佬请自行购买收费版SSL证书

在国内,免费SSL证书的云厂商并不缺乏,例如阿里云、腾讯云和华为云等都有免费的SSL证书申请渠道,关于如何申请,在厂商各自的教程中都有描述,这里给出阿里云的证书申请教程地址,可以参考申请免费SSL证书,这里给出阿里云SSL证书申请教程的直达链接:申请免费DV证书

部署SSL证书

默认网站已经配置了Nginx的HTTP访问方式,这里列出将HTTP访问更改为默认HTTPS访问的相关步骤。

上传SSL证书

这里在服务器中创建/user/local/nginx/cert目录,在此目录中上传生成的两个证书文件,通常一个是.crt文件,一个是.key文件,其中.crt文件是证书文件,.key文件是秘钥文件,例如此处的是:

1
2
3
/user/local/nginx/cert
--javafeng_cert.crt
--javafeng_key.key

上传完毕后就可以进行Nginx的配置。

增加HTTPS代理

在Nginx配置文件http节点中新增一个Server配置,如下:

1
2
3
4
5
6
7
8
9
10
11
server {
listen 443 ssl; # 监听端口为HTTPS默认端口443
ssl_certificate /user/local/nginx/cert/javafeng_cert.crt;
ssl_certificate_key /user/local/nginx/cert/javafeng_key.key;
server_name javafeng.com;

location / {
root /usr/local/sitedir;
index index.html index.htm;
}
}

配置完毕后,保存并重启Nginx。重启完成之后,通过HTTPS方式即可访问到网站。

HTTP强制定位到HTTPS

配置完HTTPS访问方式之后,使用HTTP访问会404,这里需要将HTTP跳到HTTPS,百度和谷歌中有很多的方法,这里推荐一种理解较为简单的方式,即:配置HTTP访问方式的代理配置,并跳转到HTTPS,配置如下:

1
2
3
4
5
6
server {
listen 80;
server_name javafeng.com;
return 301 https://javafeng.com$request_uri; # 注释①
#其他配置省略
}

注释①:301 为重定向,即HTTP重定向到HTTPS方式。

重启Nginx,现在网站就变成默认HTTPS方式访问了,SSL证书配置成功!

结语很重要

上述的配置是经过删减的,很多安全配置省略掉了,请根据自己的需要进行配置,不要完全照搬。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!