我需要将 CentOS 服务器上的 OpenSSL 升级到 0.9.8k 或更高版本,但是官方 CentOS 存储库中的最新版本是 0.9.8e,太旧了。是否有我可以使用的具有较新版本 OpenSSL 库的 3rd 方存储库?如果没有,有人可以提供为 CentOS 编译较新版本 OpenSSL 的快速演练吗?我需要它来替换内置版本,因此演练必须解释如何创建与 CentOS 兼容的 RPM。
我有一个 RSA 密钥(由 PuTTYgen 生成),用于通过 SSH 登录到一堆机器。或者更确切地说,我有这样一把钥匙。(它所在的计算机崩溃了,以至于需要重新安装 XP。私钥文件是由文件系统加密的,现在它基本上是在整个其他操作系统和用户上,无论 XP 会做什么显然不能再解密密钥了。)
我剩下的是一个与 OpenSSL 兼容的 base64 公钥(来自其中一台仍然设置为接受密码的机器),当然还有密钥的密码。我可能(!)仍然有机器死机之前注册表的旧备份,但必须搜索它。无论哪种方式,听起来可能无法恢复密钥文件本身。(如果它是可能的,那简直太好了,但是前景并不期待好为止。)
如果我无法恢复包含它的实际文件,有没有办法恢复私钥?也许通过将公钥导入 PuTTYgen 或 openssl 并对其进行一些反向操作?联系所有相关管理员并向他们发送新密钥可能会很痛苦,因此这几乎是最后的手段。
前几天我尝试为新员工生成一些 OpenVPN 密钥。与正常程序相同。几个月来,该领域没有任何变化。
在证书生成期间,我收到以下错误:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
entry 22: invalid expiry date
Run Code Online (Sandbox Code Playgroud)
经过一番搜索,似乎没有明确的答案。一些站点说一些关于数据库文件index.txt被损坏的事情。其他人说这与default_days.net中的设置有关openssl.cnf。其他站点建议其存在 OpenSSL 错误。
有人有任何线索吗?
更新
经过更多研究,我发现 OpenSSL 存在一个错误,其中最后生成的证书的到期日期超过 2050 年,因此index.txt 中的日期出于某种原因添加了两个额外的数字,从而使该index.txt出现损坏。我不知道如何解决这个问题。
我正在使用安装了 Debian、Apache 2 和 OpenSSL 的服务器。
是否可以在没有域名的情况下为内部网络使用 SSL?
上下文:我正在尝试在 Mac OS X Server 10.6.7 上设置 SVN 服务器,但遇到了“SSL 错误解析 tlsext”问题。我已经尝试SSLProtocol按照描述更改选项,但随后我收到了“解压错误”错误。
另一个解决方案似乎是将 openssl 升级到 0.9.8m 或更大。
我可以下载和编译 openssl 就好了,但是我不知道将它挂接到 Apache 和 mod_ssl 的默认安装中的最佳方法。我想尽可能地坚持使用内置的 Apple 软件,最好也不要覆盖他们的 openssl 版本。
如何更新 mod_ssl 以在 Mac OS X Server 10.6 上使用新版本的 openssl?
我正在尝试对在我们的 Linux RHEL 5.3 服务器上运行的启用 SSL 的端口/服务进行审计。我正在尝试查找我们服务器上的哪些端口启用了 SSL。我不知道如何找到它。我需要知道如何检查哪些端口正在使用启用 SSL 的服务。
我已经运行了下面的命令
lsof -i -n -P
netstat -ntulp
netstat -nap
Run Code Online (Sandbox Code Playgroud)
但是从这些输出中我不确定如何确定哪些端口正在运行 SSL。我不知道该找什么。
我知道 SSLscan 实用程序,但是当我运行它时,它不返回任何值并吐出错误“无法在端口 443 上打开与主机 127.0.0.1 的连接”
SSLscan 似乎在我们的 Windows 环境中工作没有任何错误,但不是 Linux。我也知道 nmap 但出于安全原因不能在我们的环境中使用它。
我不确定如何使用 OpenSSL重新编译PHP?我一直在寻找的OpenSSL的PHP页面和OpenSSL的教程左右,但我没有看到任何openssl.so或php-openssl.so在我的服务器?
apt-get频道上是否有一个简单的包,以便我可以从那里安装它?
我只需要使用 OpenSSL 重新编译 PHP,但我不知道如何执行此操作。
编辑:我运行一个专用服务器,它是 Ubuntu 11.10。
当使用 openssl 0.9.8 创建一个新的自签名证书+密钥时,有一个-nodes参数可以用来告诉 openssl 不要加密它创建的私钥。例如:
openssl req -x509 -nodes -days 365 \
-subj '/C=US/ST=Florida/L=Jupiter/CN=test.com' \
-newkey rsa:1024 -keyout mykey.pem -out mycert.pem
Run Code Online (Sandbox Code Playgroud)
但是使用新的openssl v1.0.1,似乎-nodes忽略了该参数。据我所知,私钥始终是加密的。我使用 openssl 错了吗?我应该使用不同的参数吗?
该-nodes参数被记录为表示:
if this option is specified then if a private
key is created it will not be encrypted
Run Code Online (Sandbox Code Playgroud)
来源:http : //www.openssl.org/docs/apps/req.html#item__nodes
询问更多细节:
使用 openssl 0.9.8,可以将密钥 + 证书直接导入到我们拥有的其他需要未加密密钥和证书的第三方设备中。这没有任何问题。
但是在使用 openssl 1.0.1 时,这些 3rd 方设备会抱怨密钥无效。确切的错误消息是:
ERROR: Private key for 'My Cert' does not appear to be a valid
RSA …Run Code Online (Sandbox Code Playgroud) 我想从 X.509 证书中提取原始十六进制 ASN.1 数据。我知道,我可以通过使用 DER 格式并对其进行十六进制转储来做到这一点。
我对“主题”、“发行人”及其原始十六进制 ASN1 数据等特定部分感兴趣。
我将首先声明我不是 sendmail 方面的专家。我很少使用它,但在这种情况下,我必须为我的客户使用。
背景:
我的一个客户端有一个运行 Debian 7.7、Sendmail 8.14.4 和 OpenSSL 1.0.1e 的邮件服务器。它生成电子邮件(诸如帐户重置之类的内容)并将其发送给客户。我将其称为“服务器 A”。
由于 TLS 握手失败,从服务器 A 发送到域 *.outlook.com 中的任何邮件服务器的邮件(奇怪的是不包括 @outlook.com 邮件,这些邮件由 hotmail 处理)被推迟。这只是微软拥有的服务器的问题;其他一切都在工作。日志中的错误类似于:
sendmail[22213]: ruleset=tls_server, arg1=SOFTWARE, relay=mail.protection.outlook.com, reject=403 4.7.0 TLS handshake
sendmail[22213]: s2L9EakQ022098: to=<blah@microsoft.com>, delay=00:00:55, xdelay=00:00:31, mailer=esmtp, pri=181653, relay=mail.protection.outlook.com. [145.123.225.25], dsn=4.0.0, stat=Deferred
Run Code Online (Sandbox Code Playgroud)
注意:这些日志是编造的,因为我的客户不希望复制和粘贴内容,以免意外泄漏敏感数据。信息就在那里,我只是手动输入,所以忽略错别字等。
这就是我可以从日志中获得的全部信息,即使日志是 15(除此之外,系统开始成为磁盘绑定)。
问题:
握手的 tcpdump 显示服务器 A 正在连接到 Outlook.com,EHLO 成功,服务器 A 启动了 STARTTLS,然后 Outlook.com 以其证书链响应。所有这一切都很正常。
然后在服务器 A 收到微软证书链后,服务器 A 发送了自己的客户端证书。Outlook.com 然后断开了连接。
我们的客户端证书是我们用于组织内部验证的自签名证书,不应发布到 Outlook.com。
根据我有限的知识,我最好的猜测是,outlook.com 正在请求客户端证书进行验证(或者至少 sendmail 认为它请求证书),服务器 A 上的 sendmail 是有义务的。Outlook.com 然后断开连接,要么是因为证书无效,要么不是它所期望的。
两个问题:
为什么 sendmail 将客户端证书作为 …