springboot 配置ssl支持https
以下信息请根据实际情况修改!!!
1. 创建keystore
KeyStore是一个用于存储和管理加密密钥和证书的存储库。它通常被用于各种应用和系统中,以保护敏感数据和确保安全通信。KeyStore可以被看作是一种加密的“保险箱”,用于存放密钥、密钥对和证书等安全相关的数据。
通过java的keytool创建keyStore
keytool -genkeypair -alias mykey -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 365 -storepass mypassword -keypass mypassword -dname "CN=localhost, OU=MyOrg, O=MyOrg, L=MyCity, ST=MyState, C=MyCountry"
解释各个参数:
-genkeypair:生成密钥对(公钥和私钥)。
-alias mykey:指定密钥的别名(在密钥库中引用密钥时使用)。
-keyalg RSA:指定密钥算法(这里是 RSA)。
-keysize 2048:指定密钥大小(位)。
-keystore keystore.jks:指定密钥库文件的名称(如果文件不存在,则创建它)。
-validity 365:指定证书的有效期(天)。
-storepass mypassword:指定密钥库的存储密码。
-keypass mypassword:指定密钥的密码(如果与密钥库密码相同,可以省略)。
-dname:指定证书的主题信息(DN,Distinguished Name),包括通用名称(CN)、组织单位(OU)、组织(O)、城市(L)、州/省(ST)和国家(C)。
2. 在springboot的application.yml配置文件中配置相关内容
server:
port: 8443 # HTTPS的默认端口是443,但443端口通常需要管理员权限才能绑定
ssl:
key-store: classpath:keystore.jks # 密钥库的位置,相对于classpath 对应keytool生成时的-keystore
key-store-type: JKS # 密钥库类型,默认为JKS
key-store-password: mypassword # 密钥库密码 对应keytool生成时的-storepass
key-alias: mykey # 密钥别名 对应keytool生成时的-alias
key-password: mypassword # 密钥别名 对应keytool生成时的-keypass
# 如果你使用的是PKCS12密钥库,则需要如下配置,相应信息根据实际情况修改
# key-store-type: PKCS12
# key-store: classpath:keystore.p12
# key-store-password: yourpassword
# 如果需要,还可以配置信任库
# trust-store: classpath:truststore.jks
# trust-store-password: trustpassword
# trust-store-type: JKS
# 启用SSL客户端认证(可选)
# client-auth: need