如何为本地网络部署的Spring Boot+React项目获取可信SSL证书
为localhost获取可信SSL证书的可行方案
1. 自建根CA并签发localhost证书
这是本地场景下最通用的可信证书方案,步骤清晰可控:
- 生成根CA证书与私钥:
填写信息时,Common Name可设为openssl req -x509 -sha256 -days 3650 -newkey rsa:2048 -keyout rootCA.key -out rootCA.crtMy Local Root CA这类自定义名称,其余字段按需填写即可。 - 生成localhost的证书签名请求(CSR)和私钥:
这里Common Name必须填openssl req -newkey rsa:2048 -keyout localhost.key -out localhost.csrlocalhost,其他信息可随意填写。 - 创建
localhost.ext配置文件,添加SAN字段适配现代浏览器要求:authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = localhost IP.1 = 127.0.0.1 IP.2 = 你的本地服务器局域网IP(例如192.168.1.105) - 用根CA签发localhost证书:
openssl x509 -req -in localhost.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out localhost.crt -days 3650 -sha256 -extfile localhost.ext - 最后将
rootCA.crt安装到本地网络所有客户端的系统信任库或浏览器信任库中,之后浏览器就会信任该CA签发的localhost证书,不再弹出“不安全”提示。
2. 用mkcert工具快速生成本地可信证书
mkcert是专为本地开发场景打造的工具,能一键完成CA初始化和证书生成:
- 先根据你的操作系统安装mkcert
- 初始化本地CA(自动将根CA加入系统和浏览器信任库):
mkcert -install - 生成支持多域名/IP的localhost证书:
生成的mkcert localhost 127.0.0.1 你的局域网IPlocalhost.pem和localhost-key.pem可直接用于Spring Boot和React项目的HTTPS配置。
3. 自定义本地域名+内部CA(适合团队协作场景)
如果是团队共用的本地网络环境,可以搭建内部CA服务器,为自定义本地域名(比如local.myapp.com)签发证书,再修改所有客户端的hosts文件,将该域名指向本地服务器IP。这种方式更贴近生产环境的证书流程,但需要维护内部CA服务。
项目配置提示
- Spring Boot中,将证书转成PKCS12格式:
然后在openssl pkcs12 -export -in localhost.crt -inkey localhost.key -out localhost.p12 -name localhostapplication.properties中配置:server.ssl.key-store-type=PKCS12 server.ssl.key-store=classpath:localhost.p12 server.ssl.key-store-password=你的证书密码 server.ssl.key-alias=localhost - React开发环境中,可在
package.json的启动脚本中添加HTTPS=true,或者使用https模块启动服务器并指定证书文件路径。
内容的提问来源于stack exchange,提问作者ProgMus
相关产品推荐
相关产品推荐

