深圳火狼设计公司招聘网站,wordpress微信打赏功能添加,校园网站设计代码,传媒公司网站设计方案背景 最近项目组说要将 http 升级成 https 访问#xff0c;证书也给到我们这边了#xff0c;当然我们这边用的是个二级域名#xff0c;采用的是通配符访问的方式#xff0c;比如一级域名是这样#xff08;com.chinaunicom.cn#xff09;#xff0c;我们的则是#xff0…背景 最近项目组说要将 http 升级成 https 访问证书也给到我们这边了当然我们这边用的是个二级域名采用的是通配符访问的方式比如一级域名是这样com.chinaunicom.cn我们的则是ams.chinaunicom.cn跟域名申请方要的证书和密钥。然后我们就开始进行了配置前端项目是用的 CLB 配置的端口转发图形界面化的操作将证书上传后就可以了然后将我们申请的域名解析到了我们服务器的 IP 地址。我以为后端也要开启 https 访问所以晚上就了个班就自己搞了搞其实也不是特别复杂在这里跟大家分享一下互相学习进步。 校验提供的证书信息 使用 jdk 提供的 keytool 工具来查看证书信息命令介绍
keytool -help
密钥和证书管理工具命令:-certreq 生成证书请求-changealias 更改条目的别名-delete 删除条目-exportcert 导出证书-genkeypair 生成密钥对-genseckey 生成密钥-gencert 根据证书请求生成证书-importcert 导入证书或证书链-importpass 导入口令-importkeystore 从其他密钥库导入一个或所有条目-keypasswd 更改条目的密钥口令-list 列出密钥库中的条目-printcert 打印证书内容-printcertreq 打印证书请求的内容-printcrl 打印 CRL 文件的内容-storepasswd 更改密钥库的存储口令使用 keytool -command_name -help 获取 command_name 的用法使用命令查看证书信息如下
keytool -v -list -keystore ~/Documents/tomcat.jks输入证书口令看到如下界面图中标记的信息我们在配置后端服务时要使用 因为当时拿到这个证书时keytool工具提示让迁移到行业标准格式 PKCS12提供了如下命令
Warning:
JKS 密钥库使用专用格式。建议使用 keytool -importkeystore -srckeystore /Users/cainiao007/Documents/tomcat.jks -destkeystore /Users/cainiao007/Documents/tomcat.jks -deststoretype pkcs12 迁移到行业标准格式 PKCS12。那么我们就是用该命里进行迁移输入证书口令如下 红色为升级后的证书绿色的为升级前的版本对老证书进行备份真的是 666。 注意此时的证书内容类型已经变了不再是 JKS 了我们再次使用命令对其内容进行查看如下
证书及配置文件 将升级后的 jks 证书复制到工程的 resources 文件夹中并增加如下配置 修改 maven 打包配置否则项目打包后会将证书中的特殊符号进行处理导致证书的大小会发生改变大小发生改变后就无法使用了如下
pluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationincludeSystemScopetrue/includeSystemScope/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdversion3.2.0/versionartifactIdmaven-resources-plugin/artifactIdconfigurationencodingUTF-8/encodingnonFilteredFileExtensionsnonFilteredFileExtensionxlsx/nonFilteredFileExtensionnonFilteredFileExtensionjks/nonFilteredFileExtension/nonFilteredFileExtensions/configuration/plugin/plugins增加配置类将http请求转发为 https 请求如下
package cn.chinaunicom.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;/*** Description* Author pgq* DATE 2024/3/26 18:01* Version 1.0*/
Configuration
public class HttpToHttpsConfig {private Integer httpPort8082;private Integer httpsPort443;Beanpublic TomcatServletWebServerFactory servletContainer() {TomcatServletWebServerFactory tomcat new TomcatServletWebServerFactory() {Overrideprotected 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;}Beanpublic Connector httpConnector() {Connector connector new Connector(org.apache.coyote.http11.Http11NioProtocol);connector.setScheme(http);connector.setPort(httpPort);connector.setSecure(false);connector.setRedirectPort(httpsPort);return connector;}
}
这样及支持 http也支持 https如下