主要观点:SSL 是保障系统间通信安全的关键组件,在分层或面向服务的架构中尤为重要。Spring Boot 服务可通过多种方式保护 REST 端点,本文重点介绍使用自签名证书的基于证书的 API 保护。
关键信息:
- 需生成证书签名请求并由受信任的证书颁发机构签名,会得到主机证书、中间证书和根证书,组合成证书链。
- 可使用
keytool
命令生成密钥库文件,如keytool -genkeypair -alias mylocalsslapp -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore mysslapp.p12 -validity 365
。 - Spring Boot 易于配置和暴露 HTTPS API,可通过
application.properties
文件配置 SSL 属性,如server.port=8443
等。 - 服务器需将证书提供给客户端,客户端可将证书复制到
resources
文件夹,并在application.properties
中配置spring.ssl.bundle.pem.clientbundle.truststore.certificate=classpath:client.crt
。 - 客户端使用
RestTemplate
调用安全的 REST 端点时,可通过sslBundle
创建RestTemplate
实例。
重要细节: - 自签名证书常用于非生产环境的 HTTPS API 托管和测试,生产环境应使用受信任的证书颁发机构签名的证书。
- 配置完成后,在浏览器中访问安全端点可能会显示警告,点击“接受风险”可继续。
- 完整代码可在GitHub上找到。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。