本文摘自PHP中文网,作者(*-*)浩,侵删。
今天聊一下如何在nginx中配置https在web应用开发中,为保证前端访问后端服务器的安全,需要使用https连接,现在来聊一下如何在nginx中配置https.
首先需要申请ssl证书。 在阿里云,腾讯云,华为云等云服务提供商的网站一般都会有免费ssl证书,申请一个即可;下面以华为云为例;
下载证书,会得到server.key和server.crt两个文件;在与nginx.conf同目录下创建ssl文件夹(名字任意), 把这两个证书放入刚创建的文件夹中;
在nginx.conf的server中增加如下配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 | server {
listen 443;
server_name www.test.com # 域名
ssl on; # 启用ssl功能
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
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;
...
}
|
在配置443端口之前,需要先打开防火墙和443端口,以Centos7为例:
1 2 3 4 5 6 | 1) 开启防火墙: systemctl start firewalld
查看防火墙状态: systemctl status firewalld
2) 查看开通了哪些端口: firewall-cmd --list-ports
3) 开通443端口: firewall-cmd --zone= public --add-port=443/tcp --permanent
4) 重新加载下防火墙配置: firewall-cmd --reload
注意: 如果还有其它应用在运行,开启防火墙后,需要开通相应的端口,否则不能访问。
|
80端口重定向至443端口的配置,在nginx.conf的server上面增加如下的server:
1 2 3 4 5 | server {
listen 80;
server_name www.test.com;
rewrite ^(.*)$ https:
}
|
验证配置是否正确:
执行 /usr/sbin/nginx -t
返回如下信息则表示配置成功:
1 2 | nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
|
更多Nginx相关技术文章,请访问Nginx使用教程栏目进行学习!
以上就是nginx如何正确配置https的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
nginx的配置文件在哪个目录下
使用nginx和nginx-rtmp-module搭建流媒体服务器
修改nginx上传文件大小配置
怎么更改nginx配置文件路径
linux如何安装nginx
编译过的nginx如何添加新模块
nginx调优主要调哪些
编译安装nginx却requires the pcre library
nginx高可用是什么意思
nginx如何处理请求
更多相关阅读请进入《nginx》频道 >>
转载请注明出处:木庄网络博客 » nginx如何正确配置https