1、全链路的加密,需要配置Nginx+产品均配置为https;
2、仅用户端,用户通过https访问到Nginx,Nginx代理后端的http服务
1、在springboot框架配置
编辑修改application.yaml
server:
port: 8443
# SSL证书配置开始,以下内容默认不存在,需要自行添加
# 证书文件放置到应用根目录下
# 添加注意yaml格式中的对齐规则:ssl与port对齐
#新增SSL节内容如下
ssl:
enabled: true
# 如果是JKS证书,按照以下配置
key-store: xxxxxxxx.com.jks #证书文件名
key-store-password: xxxxxxxxx #证书密码
key-store-type: JKS
# 如果是pfx证书,按照以下配置
key-store: xxxxxxxx.com.pfx #证书文件名
key-store-password: xxxxxxxxx #证书密码
key-store-type: PKCS12
# 配置TLS版本和加密算法,需要结合实际情况选择配置
enabled-protocols: TLSv1,TLSv1.1,TLSv1.2
ciphers: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA
…………
2、Nginx中配置
使用默认端口的情况
upstream decnginx {
ip_hash; #负载算法
#请按照实际项目上的地址和端口填写
server 10.10.82.71:8080 weight=1;
server 10.10.82.72:8080 weight=1;
}
server {
#监听80端口非https请求,重定向到https;解决部分浏览器不自动跳转的问题
listen 80;
server_name decnginx;
return 301 https://$http_host$request_uri;
}
server {
#监听默认的SSL443端口设置
listen 443 ssl;
server_name decnginx;
#将对应的pem证书和key文件放置到自定义的目录下,并指定好文件路径
ssl_certificate /usr/local/nginx/xxxxxxxxxxx.com.pem;
ssl_certificate_key /usr/local/nginx/xxxxxxxxxxx.com.key;
# 如果是是win环境下运行的nginx,路径要符合win的规范,可参照如下调整
# ssl_certificate D://nginx/xxxxxxxxxxx.com.pem;
# ssl_certificate_key D://nginx/xxxxxxxxxxx.com.key;
# 以下TLS版本及加密算法,按需选择配置启用
# ssl_protocols TLSv1.2 TLSv1.3; # 设置支持的TLS版本
# ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; # 设置使用的加密算法
location / {
proxy_pass http://decnginx;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#add_headerCache-Control no-store;
}
。。。。。。
不使用默认端口的情况
server {
#设置监听端口,此模式下不需要再配置80端口监听
listen 8443 ssl;
#设置server
server_name decnginx;
#将对应的pem证书和key文件放置到自定义的目录下,并指定好文件路径
ssl_certificate /usr/local/nginx/xxxxxxxxxxx.com.pem;
ssl_certificate_key /usr/local/nginx/xxxxxxxxxxx.com.key;
# 如果是是win环境下运行的nginx,路径要符合win的规范,可参照如下调整
# ssl_certificate D://nginx/xxxxxxxxxxx.com.pem;
# ssl_certificate_key D://nginx/xxxxxxxxxxx.com.key;
# 以下TLS版本及加密算法,按需选择配置启用
# ssl_protocols TLSv1.2 TLSv1.3; # 设置支持的TLS版本
# ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; # 设置使用的加密算法
#利用497代码重定向,支持http自动跳转https
error_page 497 https://$host:$server_port$request_uri;
location / {
proxy_pass http://decnginx;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#add_headerCache-Control no-store;
}
。。。。。。
---end---