背景
之前的文章介绍了,如何使用docker部署jumpserver
当需要配置成https的时候,会发现很不好调整
那么就出现了一种新的场景,那就是,后端服务不能动,如何在原来的基础上实现https的方式访问
思路
通过nginx反向代理给后端
实现
jumpserver的web服务地址是 10.0.0.12:8888
生成证书
这里使用自签名证书,或者你可以向服务商申请证书
openssl req -new -newkey rsa:2048 -sha256 -nodes -out server.csr -keyout server.key -subj "/C=CN/ST=Guangzhou/L=NanSha/O=hexug Inc./OU=Web Security/CN=hexug.com"
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
配置nginx
vim /etc/nginx/sites-enabled/default
server {
#同时监听80和443端口
listen 80;
listen 443 ssl;
server_name 10.0.0.12;
charset utf-8;
#判断,跳转 将所有http服务都跳转到https上
if ( $scheme = 'http' ) {
return 302 https://10.0.0.12/;
}
#日志
#access_log logs/host.access.log main;
#证书 证书的位置 /etc/nginx/ssl
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
#服务部分
location / {
#index index.html index.htm;
#root html;
proxy_pass http://10.0.0.12:8888;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 下面四行,是为了解决websockt代理,因为jumpserver的缘故,普通的http服务,只不需要配置下面的四行
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Proto $scheme;
}
#错误部分
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
标签:ssl,header,server,nginx,反向,proxy,EECDH,jumpserver
From: https://www.cnblogs.com/guangdelw/p/17913843.html