起因:开发项目过程中,可能会遇到 调用其他系统的接口 以及 代码中历史开发人员留下的IP接口访问等问题,后面该项目由自己负责,其他系统全部迁移到容器里面,只提供域名去访问。
问题:访问已迁移到容器其他系统,那么用IP地址访问肯定无法调用成功,只能用到 域名的形式,但是其他系统默认是开启SSL证书认证,直接访问又访问不通过,问题接踵而来;
方案:
1、从责任方面,咨询其他项目组的人员,确认证书是否强制认证。
2、从技术方面:
2.1、如果可以跳过SSL认证,那不是可以访问成功。
2.2、如果服务器之间的TLS版本不一致,是否也不能互相访问;
2.3、是否某个服务器已经指定的TLS协助的版本(1.2,1.3)
2.4、OpenSSL的安全级别为2,TLS为1.2,依旧访问不了,需要将安全级别2更改为1,TLS的版本根据 服务器之间的约定版本而变化;
查看SSL/TLS的版本:
- //切换查看是否握手成功,-tls1_2,-tls1,-tls1_1 等等
- 第一种方式:openssl s_client -tls1_2 --connect 域名:443 ;
查看docker上OpenSSL的安全级别:
1、跳转目录文件
cd /etc/ssl
2、查看文件内容
tail openssl.con
3、得到如下OpenSSL的安全级别 和 TLS的版本信息