为什么 OpenSSL 提供了两个有如此多重叠的实用程序
genpkey:
OpenSSL> genpkey -
Usage: genpkey [options]
where options may be
-out file output file
-outform X output format (DER or PEM)
-pass arg output file pass phrase source
-<cipher> use cipher <cipher> to encrypt the key
-engine e use engine e, possibly a hardware device.
-paramfile file parameters file
-algorithm alg the public key algorithm
-pkeyopt opt:value set the public key algorithm option <opt>
to value <value>
-genparam generate parameters, not key
-text print the …Run Code Online (Sandbox Code Playgroud) 使用 stunnel 作为 HTTPS 反向代理时,如何缓解 POODLE SSL 漏洞?
通常我根本不使用 Internet Explorer。我只在设计时将它用于接口测试(开发机器和未加密的 http)。每周我都会运行 SSL Labs 服务器测试,它说 IE11 能够访问我的网站。
今天,我发现我的第 3 方服务之一存在问题。某些特殊功能不适用于 Chrome 或 Firefox,因此我在 Windows 7 机器上启动了 IE11。IE11 向我展示了一个内置的错误页面,基本上只说“页面无法显示”。典型的虚拟 bla bla 喜欢检查 DNS 等等。整个错误页面上绝对没有加密相关问题的迹象(就像普通浏览器一样)。
几个月前,这个schannel问题阻止了启用 TLS1.2 的 IE 访问 HTTPS 站点。从那时起,我的“IE 的 WTF 检查表”包含“禁用 TLS1.2”作为检查点。我应该说些什么...在 IE 中禁用 TLS1.2 有效并且我的站点再次可用。但是我不能在我的访问者浏览器上这样做。
现在回到真正的问题:为什么在 IE 中启用了 TLS 1.2 时,为什么 Internet Explorer 11 无法连接到我的 HTTPS 站点?以及如何在服务器端修复它?SSL Labs 告诉我,我的网站上一切正常。
重要编辑:当启用 TLS1.2 时,IE11 似乎只能处理非前缀域,而不能处理带前缀的域。没有前缀 (www) 的域有效,而包含前缀 (www) 的域不起作用。
在服务器端我使用 …
我想设置一个证书颁发机构,然后我可以将其导入到公司的所有浏览器和系统中,以便在使用 HTTPS 或 SSL 时摆脱所有那些讨厌的客户端警告。
自从我们的电子邮件提供商更改了他们的 SSL 证书后,基于 Mono 的 POP3 客户端拒绝连接到他们的安全 POP 服务器来下载电子邮件。其他客户没有问题;例如 Thunderbird 和 Outlook;除了这个之外,大多数能够检查奇数端口的 SSL 检查器站点也没有。我一直在与这两个提供商合作以试图查明问题,但最终都走到了死胡同,因为我对 SSL 证书的了解不够,无法指导任一提供商了解故障所在。
在调查过程中,我注意到以下两个命令的输出差异(为了可读性,我已从输出中删除了证书):
echo "" | openssl s_client -showcerts -connect pop.gmail.com:995
已连接(00000003) depth=2 /C=US/O=GeoTrust Inc./CN=GeoTrust Global CA 验证错误:num=20:无法获得本地颁发者证书 验证返回:0 --- 证书链 0 秒:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=pop.gmail.com i:/C=US/O=Google Inc/CN=Google Internet Authority G2 -----开始认证----- -----结束证书----- 1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2 i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA -----开始认证----- -----结束证书----- 2 秒:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA i:/C=US/O=Equifax/OU=Equifax 安全证书颁发机构 -----开始认证----- -----结束证书----- --- 服务器证书 subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=pop.gmail.com issuer=/C=US/O=Google Inc/CN=Google Internet Authority G2 …
我在我的服务器上运行 debian jessie,最近升级到支持 http/2 的新 nginx web 服务器(nginx 1.10)。与今天一样,它运行良好,并且网络服务器正在使用 http2 协议提供内容。
我读过,chrome 正在放弃 NPN 支持,并且只在 2016 年 5 月 15 日之后才允许使用 ALPN。ALPN 是扩展,需要安装 openssl 1.0.2,但在 debian jessie 上只有 openssl 1.0.1(在 debian backports 和另一个存储库上,这个 debian 没有 openssl 1.0.2 版本)。
还有一个问题——我已经从 SPDY 升级到了 http2,几天后,我将不得不关闭 http2 并且无法使用 SPDY,因为这个版本的 nignx 只有 http2。我也读过,这个版本的 debian 将坚持使用 openssl 1.0.1,只有 debian stretch 会有 openssl 1.0.2。但是到发布日期快一年了,chrome 很快就会停止支持,所以我不想失去 http2 协议的好处。
是否有任何解决方案,如何在此系统上安装 openssl 1.0.2,而无需构建自己的构建(糟糕的维护)或等待向后移植存储库拥有它?如果必须手动链接和维护其中之一,我也不希望我的系统上有两个版本的 openssl。
谢谢你的帮助。
我正在生成一个自签名 SSL 证书:
$ openssl req -x509 -newkey rsa:2048 -subj 'CN=example.com'
Run Code Online (Sandbox Code Playgroud)
我还想在创建时指定一个subjectAltName,但我无法在 openssl 联机帮助页中找到有关如何执行此操作的信息。
我有一个如下所示的 PEM 文件:
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
我可以转换到另一种使用PEM文件:openssl x509 -in key.crt -pubkey -noout。新的 PEM 文件现在看起来像:
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)
我的问题是,这两个文件有什么区别?