Nginx 配置 HTTPS 证书
【摘要】 Nginx 配置 HTTPS 证书
HTTP
和HTTPS
的区别
HTTP
是超文本传输协议,信息是明文传输, HTTPS
则具安全性的SSL/TLS
加密传输协议。
HTTP
和HTTPS
使用完全不同的连接方法和不同的端口。前者是80
,后者是443
。HTTP
连接是非常简单和无状态的;https
协议是由SSL/TLS+HTTP
协议构建的网络协议,可用于加密传输和身份认证。它比HTTP协议更安全。
超文本传输协议,缩写为HTTP
,是分布式、协作式和超媒体信息系统的应用层协议,是万维网数据通信的基础,也是互联网上使用最广泛的网络传输协议。HTTP
最初被设计为提供一种发布和接收HTML
页面的方式。
HTTPS
协议之所以安全,是因为HTTPS
协议对传输的数据进行加密,而加密过程是由非对称加密实现的。然而,HTTPS
在内容传输的加密过程中使用对称加密,而非对称加密只在证书验证阶段发挥作用。
标准端口配置HTTPS
证书
server {
#监听443端口
listen 443 ssl;
#你的域名
server_name myapp.com;
#ssl证书的 crt 或 pem 文件路径
ssl_certificate /root/card/myapp.com.crt(myapp.com.pem);
#ssl证书的 key 文件路径
ssl_certificate_key /root/card/myapp.com.key;
location / {
# 服务地址
proxy_pass http://ip:port;
}
}
server {
listen 80;
server_name myapp.com;
#将请求转成https
rewrite ^(.*)$ https://$host$1 permanent;
}
HTTP
的默认端口是80,HTTPS
的默认端口是443
非标准端口配置 HTTPS
证书
server {
#监听8899端口
listen 8899 ssl;
#你的域名
server_name myapp.com;
#ssl证书的 crt 或 pem 文件路径
ssl_certificate /root/card/myapp.com.crt(myapp.com.pem);
#ssl证书的 key 文件路径
ssl_certificate_key /root/card/myapp.com.key;
# 拦截跳转 HTTPS
error_page 497 https://$host:$server_port$uri$is_args$args;
location / {
# 服务地址
proxy_pass http://ip:port;
}
}
重定向后,没有带上正确的端口号,需要显式的加上端口号 $server_port
497
状态码
使用 HTTP
方式请求网站时,报如下错误:
400 Bad Request: The plain HTTP request was sent to HTTPS port
可以通用error_page
去拦截跳转HTTPS
。 配置代码:
error_page 497 https://$host:$server_port$uri$is_args$args;
或者
error_page 497 https://$host:$server_port$request_uri;
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)