工业软件开发技术学什么,深圳网站建设模板乐云seo,qa wordpress,辽阳网站开发公司理论很简单#xff0c;过程很曲折#xff0c;版本适配的问题要小心。
场景#xff1a; 要和前端进行联调#xff0c;我本地后端用了https#xff0c;证书是自制的#xff0c;主要是页面里面有一些oauth2认证的地方#xff0c;需要跳转。 比如https://aaa.com/profile.h…理论很简单过程很曲折版本适配的问题要小心。
场景 要和前端进行联调我本地后端用了https证书是自制的主要是页面里面有一些oauth2认证的地方需要跳转。 比如https://aaa.com/profile.html认证通过之后要跳转到这个页面。
前端的电脑直接访问后台的页面都是正常的于是要加域名来实现上面的需求。
后端的电脑配置hosts192.168.1.1 aaa.com 前端的电脑配置127.0.0.1 aaa.com
然后使用nginx代理难点在于tomcat自制的jks证书不是nginx支持的所以要进行转换。 转换的时候要用到openssl注意其中有一个算法的问题最好使用openssl旧版本1.xxx用新版本会涉及到一个算法不支持的问题还需要调整。主要是我调整了没有成功缺少对应的库。
keytool -list -keystore server.jks会使用到里面的srcalias不过用不用这个命令都可以因为tomcat证书后端肯定是配置了alias用的就是配置的server.ssl.key-aliastomcat。
2.将jks文件导出为Nginx所需要的文件.crt和.key 2.1 将”.jks”转为”.p12”PKCS12格式的证书库
keytool -importkeystore -srckeystore oldkeystore.jks -srcalias tomcat -destkeystore newkeystore.p12 -deststoretype PKCS12
查看新格式pkcs12证书库
keytool -deststoretype PKCS12 -keystore newkeystore.p12 -list
2.2提取证书
openssl pkcs12 -in newkeystore.p12 -nokeys -clcerts -out server-ssl.crt openssl pkcs12 -in newkeystore.p12 -nokeys -cacerts -out gs_intermediate_ca.crt
server-ssl.crt是SSL证书gs_intermediate_ca.crt是中级证书俩个合并到一起才是nginx服务器所需要的证书
2.3合并证书
cat server-ssl.crt gs_intermediate_ca.crt server.crt
此时server.crt是一个完成的证书 合并证书这里使用的是cat命令其实就是两个证书的输出合并到同一个里面但是我的不知道为什么gs_intermediate_ca.crt这个是空的所以等于server.crt 就是 server-ssl.crt
2.4提取私钥
openssl pkcs12 -nocerts -nodes -in newkeystore.p12 -out server.key
server {listen 443 ssl;server_name aaa.com;#charset koi8-r;#access_log logs/host.access.log main;ssl_certificate server.crt;ssl_certificate_key server.key;location / {proxy_pass https://192.168.1.1:443; # 将请求转发到 https://example.comproxy_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-Proto $scheme;# SSL specific settingsproxy_ssl_verify off; # 如果你信任目标服务器可以关闭 SSL 验证# proxy_ssl_trusted_certificate /path/to/trusted/ca/certs; # 如果启用 SSL 验证指定受信任的 CA 证书# proxy_ssl_verify_depth 2; # SSL 验证的深度}nginx用的是1.18版本注意证书配置位置是相对conf的位置。