我正在努力让我的Pelican 博客正常运行。它使用 lftp 将实际博客传输到某个服务器,但我总是收到错误消息:
mirror: Fatal error: Certificate verification: subjectAltName does not match ‘blogname.com’
Run Code Online (Sandbox Code Playgroud)
我认为 lftp 正在检查 SSL,而 Pelican 的快速设置只是忘记包括我的 FTP 上没有 SSL。
这是 Pelican 的 Makefile 中的代码:
ftp_upload: $(OUTPUTDIR)/index.html
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
Run Code Online (Sandbox Code Playgroud)
在终端中呈现为:
lftp ftp://username@blogname.com -e "mirror -R /Volumes/HD/Users/me/Test/output /myblog_directory ; quit"
Run Code Online (Sandbox Code Playgroud)
到目前为止,我管理的是,通过将 Makefile 更改为以下内容来拒绝 SSL 检查:
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no" "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
Run Code Online (Sandbox Code Playgroud)
由于我的错误实现,我正确登录 ( lftp username@myblog.com:~>
) 但单行功能不再起作用,我必须手动输入镜像命令:
mirror -R /Volumes/HD/Users/me/Test/output/ /myblog_directory
Run Code Online (Sandbox Code Playgroud)
这没有错误和超时。问题是如何用单衬里做到这一点。 …
您将使用什么工具来验证恢复的文件结构是否完整?我的环境是 Windows Server 2008 文件服务器。(我们使用磁带进行备份,但这无关紧要。)
我特别在寻找一种工具,它可以:
一些背景:我最近不得不更换文件服务器中的磁盘。升级计划在最近一次完整备份后 36 小时开始,因此我创建了一个差异备份。但是,事实证明,我们的一个应用程序正在清除保存到服务器的文件的存档位,因此这些未包含在差异备份中。直到我的用户报告某些文件丢失时,我才意识到这一点。
除此之外,是否还有其他常用方法来验证还原的完整性完整性?我经常被告知,通过恢复备份来测试备份是知道备份是否正常工作的唯一方法,但是您如何处理它 99% 正确工作而其他 1% 静默失败的情况?
更新:显然我需要澄清一些事情。
我已经熟悉“测试备份的最佳方法是恢复它”的常识。这是必要的步骤,但还不够。能够恢复您备份的文件并不能保证首先备份您需要的所有文件。这就是我需要解决的问题。
我有一系列证书:MYROOTCERT -> MYCHILDCERT。MYCHILDCERT 证书具有 CRL 分发点扩展:
[1]CRL Distribution Point
Distribution Point Name:
Full Name:
URL=http://pacem/mychildcert.crl
Run Code Online (Sandbox Code Playgroud)
问题是我无法连接此证书,当我使用 certutil -verify 命令检查它时,我收到吊销服务器脱机错误:
C:\Users\Administrator>certutil -verify -urlfetch C:\Share\mycerts\MYCHILDCERT.c
er
Issuer:
CN=MYROOTCERT
Subject:
CN=MYCHILDCERT
Cert Serial Number: 0af7c4fb38ad0bd258fde6356117896519
dwFlags = CA_VERIFY_FLAGS_CONSOLE_TRACE (0x20000000)
dwFlags = CA_VERIFY_FLAGS_DUMP_CHAIN (0x40000000)
ChainFlags = CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT (0x40000000)
HCCE_LOCAL_MACHINE
CERT_CHAIN_POLICY_BASE
-------- CERT_CHAIN_CONTEXT --------
ChainContext.dwErrorStatus = CERT_TRUST_REVOCATION_STATUS_UNKNOWN (0x40)
ChainContext.dwErrorStatus = CERT_TRUST_IS_OFFLINE_REVOCATION (0x1000000)
ChainContext.dwErrorStatus = CERT_TRUST_IS_PARTIAL_CHAIN (0x10000)
SimpleChain.dwErrorStatus = CERT_TRUST_REVOCATION_STATUS_UNKNOWN (0x40)
SimpleChain.dwErrorStatus = CERT_TRUST_IS_OFFLINE_REVOCATION (0x1000000)
SimpleChain.dwErrorStatus = CERT_TRUST_IS_PARTIAL_CHAIN (0x10000)
CertContext[0][0]: dwInfoStatus=2 dwErrorStatus=1000040
Issuer: CN=MYROOTCERT
NotBefore: 1/1/2000 …
Run Code Online (Sandbox Code Playgroud) 据我了解,LetsEncrypt DNS 验证的工作原理是在 DNS 中设置静态 TXT 记录(基本上只是一个随机数),然后由 LetsEncrypt 服务器检查。
当我第一次听说它时,我非常兴奋并期待更复杂的东西:公钥存储在我的域的 DNS 中。然后,为了进行验证,我创建一条签名消息,并且 LetsEncrypt 服务器检查签名是否有效。由于 DNS 中的公钥和私钥是我拥有的,这证明了我控制该域。
发现它不能以这种方式工作有点令人失望:它需要手动交互,甚至需要更新新的 TXT 记录。
不使用签名方法是否存在技术原因?如果没有,LetsEncrypt没有实现的原因是什么?
domain-name-system verification digital-signatures lets-encrypt
2017 年 12 月 28 日更新 \xe2\x80\x93 3:
\n\nOpenSSL DSTU 模块的作者慷慨地提供了OpenSSL+DSTU 实现的补丁并修复了该问题,并提供了进一步的帮助。
\n\n我能够用这个命令首先完成我需要的事情:
\n\n./apps/openssl smime -verify -noverify -in my_message.txt.p7s -engine dstu -inform DER\nengine "dstu" set.\nHello, world!\nVerification successful\n
Run Code Online (Sandbox Code Playgroud)\n\n后来将证书链连接bundle.pem
成 后,我能够执行以下操作:
./apps/openssl smime -verify -CAfile bundle.pem -in /yo/my_message.txt.p7s -engine dstu -inform DER\nengine "dstu" set.\nHello, world!\nVerification successful\n
Run Code Online (Sandbox Code Playgroud)\n\n2017 年 12 月 28 日更新 \xe2\x80\x93 2:
\n\nOpenSSL DSTU 模块的作者确认该模块目前无法正常工作 \xe2\x80\x93 https://github.com/dstucrypt/openssl-dstu/issues/2#issuecomment-354288000。
\n\n我想我必须到其他地方寻找合适的 DSTU4145 实现。我刚刚了解了一个 BountyCastle 项目,以及它的规范包括 …
我在我的 SSH 服务器上使用 Google Authenticator 和 Andoid 应用程序来生成代码。
在我运行$ google-authenticator
应用程序后,创建一组紧急密钥:
https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/user@machine%3Fsecret%ABCDEFGHIJKLMNOP
Your new secret key is: ABCDEFGHIJKLMNOP
Your verification code is 123456
Your emergency scratch codes are:
12345678
90123456
78901234
56789012
34567890
Run Code Online (Sandbox Code Playgroud)
如果使用所有5个代码,我该怎么办?如何生成新的集合?如果我运行$ google-authenticator
它将生成新密钥ABCDEFGHIJKLMNOP
,Android 应用程序将停止工作,直到我设置新密钥。
我需要家用电脑来完成简单的备份任务(在 Linux 上只是 cronjob,它将每天运行一次):
不使用 ECC RAM 执行该任务(冷备份服务器)是否安全?
由于我将使用可重写磁盘,因此可以自由地重复操作错误,因此如果有一天我需要在此操作上花费更多时间,这对我来说是可以接受的解决方案。
但我不确定,文件验证能帮我避免内存错误吗?...
那么我是否需要为我的家购买单独的带有 ECC RAM 的服务器来完成这项任务,还是我可以只使用我的旧家用 PC(没有 ECC 的 RAM)并且根本不花钱?.. [我可以购买服务器,我明白,今天都很便宜,但我宁愿不花钱,如果可能的话不要花钱,而且它会消耗更多的能量,把我的时间花在管理上,我需要在我的房间里找到空间..]
verification ×8
certificate ×2
backup ×1
crl ×1
ecc ×1
email ×1
ftp ×1
lets-encrypt ×1
lto ×1
memory ×1
openssl ×1
password ×1
security ×1
smtp ×1
ssh ×1