* 本篇文章针对的是BS 的Java 版本,基于Springboot项目部署SSL证书实现https访问
* SSL简介:
>SSL(Secure Sockets Layer 安全套接层)是为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密,SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持。SSL协议分为两层,SSL记录协议建立在TCP之上,为高层协议提供数据封装、压缩、加密等基本功能支持。SSL握手协议建立在SSL记录协议之上,用户实际数据传输开始前进行身>份验证、协商加密算法、交换加密秘钥。
<br/>
## 一、SSL证书获取
各个平台获取SSL证书的方式不一样,通常只需要找到下载证书的位置点击需要的证书类型下载就可以了,可下载的SSL证书文件格式固定只有几种(.crt、.pfx、cer、.jks等);下图是在阿里云注册的域名下载SSL证书的操作方式:
![](https://img.kancloud.cn/d5/ff/d5ff529d4bd8a52ed85f4d30a781bf4a_1297x729.png)
<br/>
# 二、SSL证书部署流程
<br/>
1、springboot项目部署各种后缀格式的SSL证书
<br/>
(1)部署jks后缀的SSL证书,直接在application.yml文件中添加上下面的配置即可
![](https://img.kancloud.cn/f3/8b/f38bbb57c5398a66639096bbc5dd928b_1020x140.png)
*****
(2)部署p12后缀的SSL证书,同样的在application.yml文件中加上类似的配置;
![](https://img.kancloud.cn/d7/bf/d7bf75c25e2926e02e4c3b6850684908_326x154.png)
一般来说**p12**文件都是由crt文件转换而来,可以在linux环境下操作,因为需要用到openssl依赖,输入完命令回车后需要输入两次密码,这里输入的密码需要写入到application.yml中的**key-store-password**属性中,操作如下:
> [root@localhost https]# openssl pkcs12 -export -clcerts -in youSSL.crt -inkey ssl.key -out server.p12
> Enter Export Password:
> Verifying - Enter Export Password:
> [root@localhost https]#
**注意点**:关于application.yml中**key-alias**属性值的配置方式需要特别处理,当执行完上述命令后可以看到对应的目录下会生成出**server.p12
**文件,这时还需要执行命令:keytool -list -keystore server.p12
![](https://img.kancloud.cn/55/87/5587fa611988b62c996ff2292ccb3ec1_594x163.png)
<br/>
# 三、关于https的配置类
1、将http请求转发至https,添加一个配置类完成转发
```
package com.base.https.config;
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class HttpsConfig {
@Bean
public TomcatServletWebServerFactory serverContainer(){
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(){
protected void postProcessContext(Context context){
SecurityConstraint constrant = new SecurityConstraint();
constrant.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/\*");
constrant.addCollection(collection);
context.addConstraint(constrant);
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
// @Bean
public Connector httpConnector() {
Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT\_PROTOCOL);
connector.setScheme("http");
connector.setPort(8889);//指定http的端口为8889,
connector.setSecure(false);
//自动重定向到 https 端口 默认为443 这里设置为8887
connector.setRedirectPort(8887);
return connector;
}
```
2、解决程序部署在linux环境下运行时个别请求会被拦截问题(实现接口"**X509TrustManager**")
```
package com.base.https.config;
import javax.net.ssl.X509TrustManager;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
/**
* 请求Https 配置类
*/
public class SslTrustManager implements X509TrustManager {
// 检查客户端证书
@Override
public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
}
// 检查服务端证书
@Override
public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
}
// 返回受信任的X509 证书数组
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
}
```
- 版本管理
- BS版本管理
- BS数据库版本号升级
- 升级功能说明
- 平台升级1
- 平台升级2
- 第一章.平台规则
- Java版本配置注意事项
- 浏览界面自定义排序规则
- 弹出框选择数据自定义排序
- BS固定参数说明
- 常用界面地址格式
- 第二章.环境搭建
- JDK环境搭建
- 免安装版JDK的配置方法
- Java版本BS搭建
- Linux系统搭建BS程序
- Linux安装JDK
- 第三章.业务功能
- 基础业务
- 快速建模
- 左侧菜单栏目
- BS表单详解(弹出选择、多页签)
- 主细表、三层表配置
- 弹出框配置
- 映射下拉配置
- 数据检查条件配置
- 流程图配置方法1
- Java版本BS嵌入APP页面
- BS文档中心配置
- 第二版流程图配置方法
- 第一版流程图配置方法
- 第三版流程图配置方法
- 特殊业务
- BS树页面配置
- BS用户组权限配置
- 业务查询条件
- 查询条件配置
- BS 查询条件 "单选框" 和 "复选框" 配置
- 常用高级功能
- 自动补全配置
- BS字段输入值检查
- 字段汇总配置
- 文件上传配置
- Java版本发送邮件配置
- 设置网格内容对齐方式
- 查询页面状态使用图标表示配置
- Java版本发送邮件并携带附件
- BS嵌入BI图表
- 计算字段
- 自动计算配置
- 修改网格颜色
- 值改变时修改刷新网格汇总
- 按钮功能
- 按钮功能设置
- 按钮背景颜色设置
- 自定义查询界面不检查是否勾选
- Excel导入数据配置
- sql导入表数据配置
- Excel导出子表数据配置
- 弹窗自定义业务配置
- 自动赋值主表数据
- 获取浏览状态下细表选中字段
- 获取自定义查询界面勾选数据
- 带出三层表明细
- 批量审核功能配置
- 打印配置
- Java版本中使用CS打印
- CS打印使用BS文档中心图片
- IReport打印配置
- IReport打印设置主细表关联显示
- IReport打印记录打印次数
- IReport打印不能打印黑体、宋体等自定义字体解决方案
- Ureport报表打印
- 第四章.特殊功能说明
- API数据交互规范
- Kettle同步工具使用指南
- 通过Token登录BS
- .Net版本BS免登陆跳转并打开业务
- BS帮助文档使用说明
- BS接口程序搭建
- 存储过程手动分页配置
- BS 负载均衡部署
- quickBi嵌入BS系统
- BS部署SSL证书(https访问)
- BS演示搭建同一端口转发到不同机器
- BS嵌入APP界面动态渲染按钮并记录点击日志
- 第五章.常见问题
- BS流程图或业务打开报错
- 常见问题及解决方案
- .Net版本BS登录页报错
- BS表单引用app表单常见问题
- 修改BS的网页Logo
- BS上传文件后无法下载
- Java程序CPU占用100%后排查定位
- Linux 安装Java 开发调试工具包
- Linux开机自启动sh 脚本