【发布时间】:2020-06-06 17:15:24
【问题描述】:
我已经用 openssl 创建了我自己的 ca 证书。我有四个文件:
- ca.key(私钥)
- ca.crt(公共 ca 证书)
- server.key(私钥)
- server.crt(由 ca 文件签名的公共证书)
我使用带有 ssl 配置的 nginx。
ssl_certificate server.crt;ssl_certificate_key server.key;
如果我在我的电脑上安装了 ca 公用证书,我的浏览器可以让我在不添加异常的情况下访问网站,这很好。但是如果我的电脑上没有安装ca证书,我必须添加例外才能通过。我想避免添加异常并强制用户在他们的计算机上安装 ca 证书。
我用 hsts 配置 nginx(http 严格传输安全):
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate ca.crt;
不幸的是,我再次有可能添加例外以通过。
我想知道是否可以这样做?
【问题讨论】:
-
您的服务器无法强制用户信任它,否则诈骗者会使用相同的伎俩。您可以使用用户浏览器已经信任的 CA(例如 Lets Encrypt)或要求用户安装您的自签名 CA。
-
我已经在使用 Let's Encrypt 但我想尝试使用自定义证书。