我在将签名的 DNS 区域迁移到新服务器时遇到了一些麻烦。我已经复制了区域文件(未签名、签名和日志)、签名密钥和 DS 集。一旦到位,BIND 很乐意为该区域服务,但无法签署。这是我尝试运行时的结果rndc sign example.com
:
29-Sep-2022 17:16:42.605 general: info: received control channel command 'sign example.com'
29-Sep-2022 17:16:42.605 general: debug 1: zone_settimer: zone example.com/IN: enter
29-Sep-2022 17:16:42.605 general: debug 1: zone_timer: zone example.com/IN: enter
29-Sep-2022 17:16:42.605 general: debug 1: zone_maintenance: zone example.com/IN: enter
29-Sep-2022 17:16:42.605 dnssec: info: zone example.com/IN: reconfiguring zone keys
29-Sep-2022 17:16:42.606 dnssec: warning: EVP_SignFinal failed (failure)
29-Sep-2022 17:16:42.606 dnssec: info: error:03000098:digital envelope routines::invalid digest:crypto/evp/pmeth_lib.c:961:
29-Sep-2022 17:16:42.606 dnssec: error: zone example.com/IN: sign_apex:add_sigs -> failure
29-Sep-2022 17:16:42.606 dnssec: debug 3: zone example.com/IN: zone_rekey failure: failure (retry in 600 seconds)
29-Sep-2022 17:16:42.606 general: debug 1: zone_settimer: zone example.com/IN: enter
配置的相关部分是:
options {
dnssec-enable yes;
dnssec-validation auto;
};
zone "example.com" IN {
type master;
file "dynamic/db.example.com.signed";
auto-dnssec allow;
update-policy {
grant "local-nsupdate" wildcard *;
grant "acme-clients" subdomain example.com. TXT;
};
also-notify { office-routers; };
};
新配置几乎相同,只是删除dnssec-enable yes;
日志告诉我它现在已经过时了。
旧服务器BIND 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 (Extended Support Version) <id:7107deb>
在 Scientific Linux 7.6 上运行,新服务器BIND 9.16.23-RH (Extended Support Version) <id:fde3b1f>
在 AlmaLinux 9.0 上运行。
编辑添加EVP_SignFinal
看起来像是一个 OpenSSL 函数,所以问题可能根本不在 BIND 中。旧版的named -V
说:
由 GCC 4.8.5 20150623 (Red Hat 4.8.5-44)
编译,使用 OpenSSL 版本编译:OpenSSL 1.0.2k 2017 年 1 月 26 日
链接到 OpenSSL 版本:OpenSSL 1.0.2k-fips 2017 年 1 月 26 日
新版本说:
由 GCC 11.2.1 20211203 (Red Hat 11.2.1-7)
编译,使用 OpenSSL 版本编译:OpenSSL 3.0.1 2021 年 12 月 14 日
链接到 OpenSSL 版本:OpenSSL 3.0.1 2021 年 12 月 14 日