欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nginx+tomcat配置HTTPS请求配置说明(阿里云证书),HTTP自动跳转HTTPS

程序员文章站 2022-05-01 08:29:18
...

关于nginx-tomcat负载均衡的配置前面已经写过一篇文章,感兴趣的同学可以去看看《【Nginx+Tomcat】集群配置+Nginx配置》,本文主要教大家怎么配置nginx下网站实现https请求和http强制跳转https请求。

 

1、申请ssl证书(本文说明使用的是阿里云的免费ssl证书,免费证书只能绑定一个具体的二级域名,如果需要解析很多二级域名到你的网站,那就买收费的ssl证书吧)

登录阿里云,申请自己的ssl证书

Nginx+tomcat配置HTTPS请求配置说明(阿里云证书),HTTP自动跳转HTTPS

Nginx+tomcat配置HTTPS请求配置说明(阿里云证书),HTTP自动跳转HTTPS

Nginx+tomcat配置HTTPS请求配置说明(阿里云证书),HTTP自动跳转HTTPS

Nginx+tomcat配置HTTPS请求配置说明(阿里云证书),HTTP自动跳转HTTPS

支付0元,下单成功后继续进入证书管理界面,申请证书。

 

Nginx+tomcat配置HTTPS请求配置说明(阿里云证书),HTTP自动跳转HTTPS

Nginx+tomcat配置HTTPS请求配置说明(阿里云证书),HTTP自动跳转HTTPS

按要求填写即可,完成申请。

 

2、申请成功后,下载证书。

Nginx+tomcat配置HTTPS请求配置说明(阿里云证书),HTTP自动跳转HTTPS

Nginx+tomcat配置HTTPS请求配置说明(阿里云证书),HTTP自动跳转HTTPS

下载的Nginx证书压缩文件解压后包含:

.pem:证书文件。PEM文件的扩展名为CRT格式。

.key:证书**文件。申请证书时如果未选择自动创建CRS,则下载的证书文件压缩包中不会包含.key文件,需要您自己手动创建证书**文件。

 

Nginx+tomcat配置HTTPS请求配置说明(阿里云证书),HTTP自动跳转HTTPS

3、让自己的nginx支持ssl请求,ssl模块不是nginx的基础模块所以需要在编译的时候配置上相关的配置。

#如果你没安装过nginx
cd /usr/local/nginx.1.18.0/
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make 
make install
=======================================================================
#如果你已经安装过了,重新编译下但是不用执行 make install
#只用覆盖掉最后的nginx执行文件即可,要不很多设置的参数还需要重新配置
cd /usr/local/nginx.1.18.0/
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make
cp ./objs/nginx /usr/local/nginx/sbin/

4、创建cert文件夹,配置nginx,支持https访问

#在/usr/local/nginx/conf/创建cert文件夹用于存放证书
cd /usr/local/nginx/conf/
mkidr cert 
#把证书解压缩放到cert下面,接着修改nginx的配置文件
cd /usr/local/nginx/conf/
vim nginx.conf
#这里是你的项目对应的域名,对应的tomcat转发设置
upstream your.domain{
    server 127.0.0.1:8080 weight=1;
}
server {
    #Nginx 1.15.0以上版本请使用listen 443 ssl代替listen 443和ssl on。
    listen 443 ssl; 
    #将www.xacom.cn修改为您证书绑定的域名
    #如果您购买的是通配符域名证书,要修改为通配符域名,例如:*.example.com。
    server_name www.xacom.cn; 
    ##将domain name.pem替换成您证书的文件名称。
    ssl_certificate cert/domain name.pem;  
    #将domain name.key替换成您证书的**文件名称。
    ssl_certificate_key cert/domain name.key; 
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://your.domain;
        proxy_redirect default;
    }
}
#设置完记得重启你的nginx
#Tip:设置完参数你可以检测下设置的是否正确
cd /usr/local/nginx/sbin/
./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

 5、请求http转发https,所有http的请求都会自动转发到对应的https请求上。

#再加入一个http请求-80端口的监听,让他把所有的请求都跳转到https请求上即可
server {
    listen      80;
    server_name  www.xacom.cn;
    rewrite ^(.*)$ https://$host$1 permanent;
}

6、需要注意的问题

a、可能会遇到签名错误问题,你需要把你的签名的名字在检查一遍是否跟你目录下的名字一致。

b、ssl不支持,按上面的步骤重新编译你的nginx,完成后重启nginx,即可解决。

c、域名证书一定要下载正确哦~