nginx怎么配置ssl可以即允许http访问也允许https访问
5个回答
2016-08-09
展开全部
方法/步骤
给nginx配置SSL证书之后,https可以正常访问,http访问显示400错误,nginx的配置如下:
server {
listen 80 default backlog=2048;
listen 443;
server_name wosign.com;
root /var/www/html;
ssl on;
ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .key;
}
http访问的时候,报错如下:
400 Bad Request
The plain HTTP requset was sent to HTTPS port. Sorry for the inconvenience.
Please report this message and include the following information to us.
Thank you very much!
说是http的请求被发送到https的端口上去了,所以才会出现这样的问题。
2
server {
listen 80 default backlog=2048;
listen 443 ssl;
server_name wosign.com;
root /var/www/html;
ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .Key;
}
把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用,完美解决。
给nginx配置SSL证书之后,https可以正常访问,http访问显示400错误,nginx的配置如下:
server {
listen 80 default backlog=2048;
listen 443;
server_name wosign.com;
root /var/www/html;
ssl on;
ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .key;
}
http访问的时候,报错如下:
400 Bad Request
The plain HTTP requset was sent to HTTPS port. Sorry for the inconvenience.
Please report this message and include the following information to us.
Thank you very much!
说是http的请求被发送到https的端口上去了,所以才会出现这样的问题。
2
server {
listen 80 default backlog=2048;
listen 443 ssl;
server_name wosign.com;
root /var/www/html;
ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .Key;
}
把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用,完美解决。
展开全部
示例1,里面模拟的是用户访问一台Nginx服务器,Nginx代理后面一台真实服务器。
如果只是一台机器上设置也是类似的。
此外里面的域名和端口和证书,日志名称之类的根据自己的情况来定。
这个文件保存成一个name.conf在Nginx.conf中include即可。
upstream yourserver {
ip_hash;
server 172.16.10.10 weight=1 max_fails=2 fail_timeout=2;
}
server {
listen 80;
listen 443;
server_name yoursever.domain.com;
ssl on;
ssl_certificate /etc/ssl/certs/yourname.crt;
ssl_certificate_key /etc/ssl/certs/yourname.key;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://yourserver;
client_max_body_size 15m;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto https;
}
access_log /var/log/nginx/yourserver.log main;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-07-29 · 百度认证:Gworg官方账号,科技领域创作者
Gworg
Gworg提供全球可信的SSL数字证书、服务器证书以及中文数字证书、PDF签名证书等服务,ssl证书申请、审核、颁发、安装。数字证书被广泛运用于各大网站加密、可严格防范钓鱼网站、黑客窃听。
向TA提问
关注
展开全部
服务器不配置301或302跳转HTTPS就可以了。
不配置跳转就意味着HTTP与HTTPS都可以打开了,本地浏览器清空记录访问。
不配置跳转就意味着HTTP与HTTPS都可以打开了,本地浏览器清空记录访问。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是个很简单的问题,你只需要同时监听两个端口就可以了:
server
{
listen 80; #允许http访问
listen 443 ssl; #允许https访问
server_name youdomain;
index index.html index.htm index.php;
root /data/web/;
}
server
{
listen 80; #允许http访问
listen 443 ssl; #允许https访问
server_name youdomain;
index index.html index.htm index.php;
root /data/web/;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怎么可能,只能选一种。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询