# 如何让所有网站开启https

# 思路

利用nginx代理,让https网站代理到http

# 实际需求

小程序端口api要求是https和443端口,以及需要合法域名(ICP备案)。 后端用的Java,应用服务器是tomcat。所以需要用nginx来代理。

# nginx开启https

1.申请一个认证的域名和HTTPS的证书,域名需要与证书一致

2.腾讯云ssl申请

3.ningx配置

# HTTPS server
server {
    listen       443 ssl;   #监听443端口                  
    server_name  xinyu666.cn;   #配置基于名称的虚拟主机

    ssl_certificate      "C:\xinyu666.cn\Nginx\1_xinyu666.cn_bundle.crt";   #ssl证书公钥文件路径
    ssl_certificate_key  "C:\xinyu666.cn\Nginx\2_xinyu666.cn.key";  #ssl证书私密文件路径

    ssl_session_cache    shared:SSL:1m; #重用Session提高https的性能
    ssl_session_timeout  5m;    #5分钟session会话保持

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location /api { #重定向
        proxy_set_header Host $host;    #把原http请求的Header中的Host字段放到转发请求里
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    #把原http请求的Header中的X-Forwarded-For字段放到转发请求里
        proxy_pass http://127.0.0.1:8086/api;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 遇到问题404

查看error.log信息,发现转发不成功。 kill之后reload kill nginx nginx -s reload

# 资料

ssl证书 (opens new window) nginx配置https服务器 (opens new window) nginx常用命令 (opens new window)

全量分析

评 论:

上次更新时间: 3/28/2020, 11:47:27 PM