nginx怎么配置ssl可以即允许http访问也允许https访问

 我来答
匿名用户
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的链接都可以用,完美解决。
jinxingvenus
推荐于2018-03-08 · TA获得超过4790个赞
知道大有可为答主
回答量:2703
采纳率:64%
帮助的人:3165万
展开全部

示例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;

        }
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Gworg
2018-07-29 · 百度认证:Gworg官方账号,科技领域创作者
Gworg
Gworg提供全球可信的SSL数字证书、服务器证书以及中文数字证书、PDF签名证书等服务,ssl证书申请、审核、颁发、安装。数字证书被广泛运用于各大网站加密、可严格防范钓鱼网站、黑客窃听。
向TA提问
展开全部
服务器不配置301或302跳转HTTPS就可以了。
不配置跳转就意味着HTTP与HTTPS都可以打开了,本地浏览器清空记录访问。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ninnycalf
2018-03-06 · TA获得超过233个赞
知道小有建树答主
回答量:209
采纳率:81%
帮助的人:93.5万
展开全部
这是个很简单的问题,你只需要同时监听两个端口就可以了:
server
{
listen 80; #允许http访问
listen 443 ssl; #允许https访问
server_name youdomain;
index index.html index.htm index.php;
root /data/web/;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nxk88998
2018-03-07 · 超过62用户采纳过TA的回答
知道小有建树答主
回答量:224
采纳率:85%
帮助的人:52.2万
展开全部
怎么可能,只能选一种。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式