据我所知,DNSSEC 允许我创建公钥并签署我的 DNS 记录。似乎有多种方法可以获得证书记录(例如 DANE,请参阅https://wiki.mozilla.org/Security/DNSSEC-TLS-details#Embedding_Certificate_Information_in_DNS)
我不太清楚这是如何运作的。我猜这些步骤。这是正确的吗?
- 创建公钥/私钥对
- 将公钥放入 DNS 记录(我相信是 DS)
- 签署我的 DNS 记录
- 为我的服务器创建公钥/私钥
- 创建证书
- 使用 DNS 私钥签署证书
- 将证书放入 DNS!?!?!
- 将证书放在我的服务器上并以典型方式使用它?
我觉得我搞错了什么,Mozilla 链接提到并非所有记录都受支持,因此目前哪些记录得到了很好的支持(比如说 Firefox、Chrome、IOS 和 Android),我所描述的记录是什么?DANE?CAA?
答案1
DNSSEC和丹麦是独立的东西,但 DNSSEC 是使用 DANE 的先决条件。
DNSSEC 专门用于验证收到的 DNS 数据是否真实,仅此而已。
使用 DNSSEC 意味着生成 DNSSEC 密钥、签署您的区域(这将导致将公钥发布为DNSKEY
记录、根据您的实际区域数据添加RRSIG
/ NSEC
/记录等)、通过让注册商添加记录(用于标识您在委托区域中发布的有效密钥)以及普通/ 粘合记录NSEC3
来签署委托。DS
NS
使用 DANE 本质上就是TLSA
在 DNSSEC 签名区域中添加如下记录:
_443._tcp.example.com. IN TLSA tlsa-parameters-identifying-the-valid-certificate
(您可能希望使用tlsa
来自哈希投掷者生成该记录)
支持 DANE 的 HTTPS 客户端(在此示例中)将知道它们正在连接到 example.com 上的端口 443/tcp,然后查找_443._tcp.example.com. IN TLSA
、验证 DNS 数据的真实性,然后依次使用该数据来验证 TLS 连接中显示的证书。