东莞网站设计资讯,张家港网络推广,苏州哪家公司做网站,电脑版qq手机登录网页登录入口整体目录 1. 生成SSL证书
首先#xff0c;使用keytool生成一个自签名证书。打开命令行工具并运行以下命令#xff1a;
keytool -genkeypair -alias myserver -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 365
这将创建一个名为keystore.jks的文件#xf…
整体目录 1. 生成SSL证书
首先使用keytool生成一个自签名证书。打开命令行工具并运行以下命令
keytool -genkeypair -alias myserver -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 365
这将创建一个名为keystore.jks的文件其中包含一个自签名的证书。你将被要求输入一些信息如密码、名字等。
2. 配置Spring Boot应用以使用HTTPS
在你的Spring Boot项目中将生成的keystore.jks文件放在src/main/resources目录下。然后在application.properties文件中添加以下配置
server.port8443
server.ssl.key-storeclasspath:keystore.jks
server.ssl.key-store-passwordyour_keystore_password
server.ssl.key-passwordyour_key_password
server.ssl.key-store-typeJKS
请确保将your_keystore_password和your_key_password替换为你在生成密钥库时使用的密码。
server.port8443
server.ssl.key-storeclasspath:mykeystore.jks
#JKS类型-storepass参数值P12和key password一样
server.ssl.key-store-password changeit
server.ssl.key-passwordtest123456
#PKCS12 或者JKS
server.ssl.key-store-typeJKS
#server.ssl.key-store-typePKCS12
3. 编写控制器
创建一个简单的REST控制器来测试HTTPS服务。
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** author: jg* date: 2024-11-14* description:*/
RestController
RequestMapping(/https)
public class HttpsController {GetMappingpublic String test(){return https 测试方法;}
}4. 启动Spring Boot应用
确保你的Spring Boot主类位于正确的包结构中并且包含SpringBootApplication注解。例如
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** author: jg* date: 2024-11-14* description:*/
SpringBootApplication
public class HttpsDemoApplication {public static void main(String[] args) {SpringApplication.run(HttpsDemoApplication.class,args);}
}
5.测试
postman
设置File-Settings curl命令 curl -k https://172.30.4.81:8443/https
keytool生成证书 PKCS12
1.生成一个新的私钥和证书请求 (CSR)
首先你需要生成一个新的私钥和证书签名请求 (CSR)。
keytool -genkeypair -alias myalias -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.p12 -storetype PKCS12 -dname CNexample.com, OUIT, OMyOrg, LCity, STState, CCountry -ext SANdns:example.com,dns:www.example.com,ip:192.168.1.1在这个命令中
-alias myalias 指定别名。-keyalg RSA 指定使用的算法。-keysize 2048 指定密钥大小。-validity 365 指定证书有效期为365天。-keystore mykeystore.p12 指定密钥库文件名。-storetype PKCS12 指定密钥库类型为 PKCS12。-dname CNexample.com, OUIT, OMyOrg, LCity, STState, CCountry 指定证书的 Distinguished Name (DN)。-ext SANdns:example.com,dns:www.example.com 添加 SAN 扩展包含多个域名。
2. 导入证书到密钥库
如果你已经有一个现有的证书并且想要将其导入到新的 PKCS12 密钥库中可以使用以下命令
keytool -importcert -file mycertificate.crt -alias myalias -keystore mykeystore.p12 -storetype PKCS12
在这个命令中
-file mycertificate.crt 指定要导入的证书文件。-alias myalias 指定别名。-keystore mykeystore.p12 指定密钥库文件名。-storetype PKCS12 指定密钥库类型为 PKCS12。
3. 验证密钥库内容
你可以使用以下命令来查看密钥库中的条目确保它们已正确导入 keytool -list -v -keystore mykeystore.p12 -storetype PKCS12
这个命令会显示密钥库中的所有条目及其详细信息包括 SAN 信息。
4. 配置 Spring Boot 使用 PKCS12 密钥库
在 Spring Boot 配置文件中更新你的 SSL 配置以使用新的 PKCS12 密钥库
application.properties
server.ssl.key-storeclasspath:mykeystore.p12
server.ssl.key-store-passwordyourpassword
server.ssl.key-aliasmyalias
server.ssl.key-store-typePKCS12
JKS
使用 keytool 生成证书的步骤如下 生成密钥对和证书签名请求 (CSR) keytool -genkeypair -alias myalias -keyalg RSA -keysize 2048 -keystore mykeystore.jks -validity 365 -storepass changeit 如果需要设置SAN
keytool -genkeypair -alias myalias -keyalg RSA -keysize 2048 -keystore mykeystore.jks -validity 365 -storepass changeit -dname CNexample.com, OUIT, OMyOrg, LCity, STState, CCountry -ext SANdns:example.com,dns:www.example.com,ip:192.168.1.1 keytool -genkeypair -alias mycert -keyalg RSA -keysize 2048 -validity 365 -dname CN172.30.4.81, OUIT, OMyOrg, LCity, STState, CCountry -keystore keystore.jks -storepass changeit
-alias myalias 指定别名。-keyalg RSA 指定使用的算法。-keysize 2048 指定密钥大小。-validity 365 指定证书有效期为365天。-keystore mykeystore.jks 指定密钥库文件名。-dname CNexample.com, OUIT, OMyOrg, LCity, STState, CCountry 指定证书的 Distinguished Name (DN)。-ext SANdns:example.com,ip:192.168.1.1 添加 SAN 扩展包含多个域名和一个 IP 地址。 导出证书 keytool -exportcert -alias myalias -keystore mykeystore.jks -file mycert.cer -storepass changeit 将证书导入到目标服务器 现在将生成的证书mycert.crt复制到172.30.4.83服务器上并将其导入到目标服务器的密钥库中。 scp mycert.crt user172.30.4.83:/path/to/destination 在172.30.4.83服务器上执行以下命令
keytool -importcert -alias mycert -file /path/to/destination/mycert.crt -keystore keystore.jks -storepass changeit 将证书导入到信任库可选 keytool -importcert -file mycert.cer -keystore truststore.jks -alias myalias -storepass changeit -noprompt 验证密钥库 keytool -list -v -keystore mykeystore.jks -storepass changeit
使用keytool将pkcs12文件导出crt证书 keytool -importkeystore -srckeystore yourfile.p12 -srcstoretype pkcs12 -destkeystore temp.jks -deststoretype jks
这里 yourfile.p12 是你的 p12 文件名temp.jks 是临时生成的 JKS 文件名。
从 JKS 文件中导出证书
keytool -exportcert -alias alias -keystore temp.jks -rfc -file certificate.crt
这里 alias 是你在导入 p12 文件时使用的别名temp.jks 是临时生成的 JKS 文件名certificate.crt 是输出的 crt 文件名。
openssl将p12文件导出为crt文件 使用以下命令将p12文件转换为PEM格式的证书和私钥 openssl pkcs12 -in yourfile.p12 -out certificate.pem -clcerts -nokeys 这里yourfile.p12是你的p12文件名certificate.pem是输出的PEM格式证书文件名。 如果你只需要导出证书部分可以使用以下命令从PEM文件中提取证书 openssl x509 -in certificate.pem -out certificate.crt