提前准备以下物料,避免操作中途卡壳:
执行以下命令完成环境校验:
java -version,输出版本号≥1.8.0_301即为符合要求netstat -tulpn | grep -E '80|443',无返回结果则端口可用date,与北京时间误差≤5分钟,否则会触发证书校验失败档案系统默认支持JKS格式证书,不同源证书转换命令如下:
先将证书上传到服务器/opt/archive/cert目录,执行命令:
keytool -importkeystore -srckeystore 你的证书文件名.pfx -srcstoretype pkcs12 -destkeystore archive-cert.jks -deststoretype JKS
按提示输入源证书密码、自定义JKS证书密码,两次密码要单独记录,后续配置需要使用
先转成PFX格式,再按上述步骤转JKS,转换命令:
openssl pkcs12 -export -in your_domain.crt -inkey your_domain.key -out cert.pfx -name archive-ca
直接执行命令生成可用JKS证书,有效期10年:
keytool -genkey -alias archive-ca -keyalg RSA -keysize 2048 -keystore archive-cert.jks -validity 3650
按提示输入信息,“名字与姓氏”字段必须填写系统访问域名或服务器公网IP
将生成的archive-cert.jks文件上传到系统根目录的config文件夹下,修改application.yml配置,完整可复制配置如下:
```yaml
server:
port: 443
ssl:
enabled: true
key-store: classpath:config/archive-cert.jks
key-store-password: 你设置的JKS证书密码
key-store-type: JKS
key-alias: archive-ca
档案系统证书专属配置
archive:
cert:
enable: true
verify-interval: 3600 证书有效期校验间隔,单位秒
expired-alarm-mail: admin@yourcompany.com 证书过期告警邮箱
HTTP自动跳转HTTPS配置
http:
port: 80
redirect-to-https: true
```
必须替换配置中的密码、别名、告警邮箱为实际参数,禁止直接使用默认值启动
如果是二次开发的SpringBoot版本,需在启动类添加以下Bean实现HTTP自动跳转: ```java @Bean public TomcatServletWebServerFactory servletContainer() { TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() { @Override protected void postProcessContext(Context context) { SecurityConstraint constraint = new SecurityConstraint(); constraint.setUserConstraint("CONFIDENTIAL"); SecurityCollection collection = new SecurityCollection(); collection.addPattern("/"); constraint.addCollection(collection); context.addConstraint(constraint); } }; tomcat.addAdditionalTomcatConnectors(httpConnector()); return tomcat; } @Bean public Connector httpConnector() { Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); connector.setScheme("http"); connector.setPort(80); connector.setSecure(false); connector.setRedirectPort(443); return connector; } ```
执行启动命令:nohup java -jar archive-system.jar &
启动完成后按以下步骤校验是否部署成功:
按以下顺序排查:
local_policy.jar、US_export_policy.jar放到$JAVA_HOME/jre/lib/security目录覆盖原有文件,重启系统即可ntpdate cn.ntp.org.cn同步服务器时间,时间误差过大也会触发过期校验keytool -list -v -keystore archive-cert.jks查看证书有效期,确认是否真的过期,提前90天申请续期keytool -import -alias root-ca -keystore archive-cert.jks -file root.crt导入根证书、中级证书,重启系统即可1. 每月1号执行证书有效期检查命令,提前90天完成证书续期替换,避免业务中断
2. 证书密码存储在企业统一密码管理系统,禁止明文存储在配置文件中,更换密码后同步修改系统配置并重启验证
3. 每次系统升级前备份archive-cert.jks和application.yml文件,避免证书丢失导致业务不可用