自签证书+SpringBoot2使用
0 确认jdk版本在8u301或以上,重要!!!
1 安装openssl,并配置openssl安装目录/bin到系统环境变量Path下。window,linux都有。
2 创建 openssl.cnf
文件,内容如下:
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = CN
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = GD
localityName = Locality Name (eg, city)
localityName_default = ShenZhen
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = lion360
commonName = Common Name (eg, your name or your server's hostname)
commonName_max = 64
[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
IP.1 = 192.168.30.4
IP.2 = 192.168.30.5
DNS.1 = localhost
属性自己看着填。IP.1和IP.2 是你要再哪些ip下使用证书,一定要把所有要访问的ip填写上,重要!
3 生成私钥和证书签名请求(CSR)
openssl req -new -newkey rsa:2048 -days 3650 -nodes -keyout mykey.key -out mycsr.csr -config openssl.cnf
这里会要你输入一些属性,国家城市啥的,之前填过的,可以不用管,一路回车。
4 生成自签名证书
openssl x509 -req -in mycsr.csr -signkey mykey.key -out mycert.crt -days 3650 -extensions v3_req -extfile openssl.cnf
5 将证书转为 .p12 格式
openssl pkcs12 -export -in mycert.crt -inkey mykey.key -out keystore.p12 -name myalias
这里会要求你输入密码(如123456),需要自己记住,下一步要用到
6 配置 Spring Boot 使用 .p12 文件
把keystore.p12文件放在项目resources目录下,然后yml里添加配置:
server:
ssl:
key-store: classpath:keystore.p12
key-store-password: 123456 # 替换成你为 keystore 设置的密码
key-store-type: PKCS12
key-alias: myalias # 你为证书设置的别名
port: 8443 # 替换成你自己的端口
如果想把证书放在磁盘上,可以这么配置
server:
ssl:
key-store: file:///D:/WMS/keystore.p12 # 替换成你的文件目录
key-store-password: 123456
key-store-type: PKCS12
key-alias: myalias
7 客户端安装证书
- 打开 Windows 的证书管理器:
运行 > certmgr.msc
。 - 找到 受信任的根证书颁发机构,右键点击选择 所有任务 > 导入。
- 导入你的
mycert.crt
文件。
8 重启浏览器
终于,现在可以访问
https://localhost/api/xx/yy/zz
或https://192.168.30.4/api/xx/yy/zz
或https://192.168.30.5/api/xx/yy/zz
了~~~