背景
项目开发阶段前后交互采用http协议,演示环境采用htttps协议 ,此处为个人demo案例
组件
后端:springBoot
前端:vue
web 服务:tomcat
部署环境:linux
生成自签名证书
创建目录 存储证书位置
# mkdir -p /opt/dcp/demo
切换目录
# cd /opt/dcp/demo生成java keystore(JKS)证书
# keytool -genkey -v -alias xtpt_cloud -keyalg RSA -validity 36500 -keystore xtpt_cloud.jks -dname "CN=xtpt_cloud,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass XtptCloud2023# -keypass XtptCloud2023# -ext san=ip:10.1.5.3转换秘钥库诶下
# keytool -importkeystore -srckeystore xtpt_cloud.jks -destkeystore xtpt_cloud.jks -deststoretype pkcs12导出证书
# keytool -export -trustcacerts -alias xtpt_cloud -file xtpt_cloud.cer -keystore xtpt_cloud.jks -storepass XtptCloud2023# -ext san=10.1.5.3转换证书格式
# openssl x509 -inform der -in xtpt_cloud.cer -out xtpt_cloud.pem导出私钥
# openssl pkcs12 -nocerts -nodes -in xtpt_cloud.jks -out xtpt_cloud.key
XtptCloud2023#
springBoot配置
ssl:
key-store: file:/opt/dcp/demo/xtpt_cloud.jks
key-alias: xtpt_cloud
key-store-password: XtptCloud2023#
key-store-type: JKS #密钥库类型
enabled-protocols: TLSv1,TLSv1.1,TLSv1.2
ciphers: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA
tomcat配置
编辑文件server.xml
# vim /opt/dcp/tomcat_pri/conf/server.xml
#注释原Connector的http配置,添加https配置
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="/opt/dcp/demo/xtpt_cloud.jks" keystorePass="XtptCloud2023#"
clientAuth="false" sslProtocol="TLS"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"/>
重启tomcat
# /opt/dcp/tomcat/bin/catalina.sh start
访问验证
改为https