Spring-Boot 中的自签名证书

Self-Signed Certificates in Spring-Boot

我正在尝试启动 Spring- 启动服务器和 运行,它通过 SSL 提供一些安全性。我按照 this guide 的第 1 步和第 2 步获得了自签名证书,并且能够通过 https 访问我的站点。 application.properties 看起来像这样:

server.port=8443
server.ssl.keyStore=classpath:keystore.p12
server.ssl.keyStorePassword=youd_want_to_know
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=hs

keystore.p12 是用

生成的
$ keytool -genkey -alias hs -storetype PKCS12 \
-keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650

除了密码我什么都没填,其他都是"Unknown".

但是,浏览器中的锁不是绿色的。详细消息说

There are issues with the site's certificate chain (net::ERR_CERT_AUTHORITY_INVALID).

正面:

Secure TLS connection
The connection to this site is using a strong protocol version and cipher suite.
Secure Resources
All resources on this page are served securely.

我想在纯文本中这意味着数据是安全传输的,但浏览器对证书并不完全满意,因为它无法跟踪真实性。因此,我知道这不值得用于生产(目前不需要)。

但是,我拥有服务器并且知道我自己创建了自签名证书,这对我来说是否安全可靠?或者有没有办法将其变成浏览器满意的证书?我需要做什么才能使其正常工作以及 Sprint-Boot 配置是什么样的?

这就是浏览器的行为方式。只要您(或者更确切地说,您或您的组织拥有的浏览器)是您网站的唯一消费者,您就没事。但是,一旦您想加入其他消费者,您可能需要让证书提供商签署您的证书

在这种情况下浏览器和服务器之间的通信仍然容易受到中间人攻击,所以这不是真的"secure & safe"

简而言之, 使用自签名证书是完全不安全的,除非

  1. 你控制着你和服务器之间的每一台机器 或者
  2. 您检查证书中的密钥是否符合您的预期 成为。

唯一的优点是;它将阻止被动攻击(攻击者观察数据但不以任何方式更改它),无论 CA 证书是否由主流 CA 颁发。

看这里https://security.stackexchange.com/a/8112