通常我根本不使用 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) 的域不起作用。
在服务器端我使用 …
尝试运行任何 rpm 命令时,出现以下错误。我不确定为什么会出现 curl 错误,但我尝试了许多不同的选项,但都失败了。
运行 CentOS7 并在代理后面
[root@CentOS7]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Retrieving https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
curl: (60) Peer's certificate issuer has been marked as not trusted by the user.
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in …Run Code Online (Sandbox Code Playgroud) 我正在使用来自必须在 Windows 上使用 Apache 的供应商的产品。
我们有自己的 CA。
出于命名目的:
AppServer - Server2012r2 - Apache 2.4
OldCertsha1 - Server2012r2
NewCertsha2 - Server2012r2
我使用以下两个命令在 AppServer 上创建了 CSR。
genrsa –des3 –out name.sub.domain.com.key 2048
req –new –key name.sub.domain.com.key –out name.sub.domain.com.csr
Run Code Online (Sandbox Code Playgroud)
一切顺利
req -noout -text -in name.sub.domain.com.csr
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=xx, ST=xx, L=xx, O=xx, OU=xx, CN=name.sub.domain.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f:
e1:ae:5a:e8:26:81:fd:a0:49:f9:a3:c0:77:75:0f: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用由中间 CA 签名的 SSL 证书(用于服务器和客户端)配置双向 SSL。这是我在本教程之后所做的。
服务器 - nginx 应用程序
Nginx 配置了 SSL 证书(由中间 CA 签名)。
server {
listen 443;
server_name app-ca.test.com;
ssl on;
ssl_certificate /root/ca/intermediate/certs/app-plus-intermediate.pem;
ssl_certificate_key /root/ca/intermediate/private/app-ca-interm-ca.test.com.key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# I have also tried adding the Intermediate CA cert in vain
# ssl_client_certificate /root/client_rootca_intermediate.crt;
ssl_client_certificate /root/client_rootca.crt;
ssl_verify_client on;
location / {
root /usr/share/nginx/massl;
index index.html index.htm;
}
}
Run Code Online (Sandbox Code Playgroud)
客户端 - curl 或 OpenSSL s_client
我有一个由其他一些中间 CA 签名的客户端证书,但失败了 400 The SSL certificate …
我看过微软发布的这篇 KB 文章,介绍了如何在 IIS 7.0 及更早版本上删除 SSL 2.0,但我找不到任何关于如何在 IIS 7.5 上执行相同操作的建议。该知识库文章中提到的注册表项不再在注册表中。
问题:在服务器上使用某些证书时,Windows Server 2008 R2 将仅支持以下 ssl 密码套件:
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
这会阻止 XP 客户端连接到服务器,因为 XP 加密 API 默认不支持任何 AES 密码。
因此,尝试使用 Internet Explorer 或远程桌面进行连接时,服务器日志中会出现以下错误。(因为他们使用微软的 CAPI)
Schannel 错误 36874“从远程客户端应用程序接收到 TLS 1.0 连接,但服务器支持客户端支持的密码套件。SSL 连接请求失败。”
Schannel 错误 36888“生成了以下致命警报:40。内部错误状态为 1204”
我刚刚跳到 Amazon 为我的 .net 站点提供服务,并且一个站点需要 SSL。
我有一个指向我的 EC2 实例的弹性 IP,并且我在 IIS 7 中的站点设置一切正常。我还有来自供应商的 SSL 证书。我已经在 IIS 中安装了 SSL 证书,但我的 https 连接不会显示我的网页。
我认为这与我没有相关证书/网站的专用 IP 地址有关。
任何人都可以给我任何提示吗?
我有一个相当大的 VirtualHost 定义,我不想复制它,这样站点也将通过 HTTPS 运行。
这是我想要做的:
<VirtualHost *>
ServerName example.com
<If port=443>
SSLEngine on
SSLCertificateFile ...
SSLCertificateKeyFile ...
SSLCertificateChainFile ...
</If>
(other config)
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我是否缺少其他不复制配置的方法?
是否有可能让 Windows 信任证书,而不让它信任根 CA 作为受信任的根 CA?
说我有以下证书链,
Dept-Root-CA
Dept-Intermediate-1
Server-Certificate
Run Code Online (Sandbox Code Playgroud)
我想信任 Server-Certificate,但不想信任 Dept-Root-CA,因为这样它就可以签署任何证书,我的服务器也会信任它。仅仅因为我愿意为特定操作信任 Server-Certificate 上的证书,并不意味着我愿意相信 Dept-Root-CA 已得到适当保护。
谢谢
我有两个主机名共享相同的域名,我想通过 HTTPs 提供服务。我有一个通配符 SSL 证书并创建了两个 vhost 配置:
主机 A
listen 127.0.0.1:443 ssl;
server_name a.example.com;
root /data/httpd/a.example.com;
ssl_certificate /etc/ssl/wildcard.cer;
ssl_certificate_key /etc/ssl/wildcard.key;
Run Code Online (Sandbox Code Playgroud)
主机B
listen 127.0.0.1:443 ssl;
server_name b.example.com;
root /data/httpd/b.example.com;
ssl_certificate /etc/ssl/wildcard.cer;
ssl_certificate_key /etc/ssl/wildcard.key;
Run Code Online (Sandbox Code Playgroud)
但是,我为任一主机名提供了相同的虚拟主机。
ssl ×10
nginx ×2
virtualhost ×2
windows ×2
amazon-ec2 ×1
apache-2.2 ×1
apache-2.4 ×1
centos7 ×1
curl ×1
https ×1
iis-7.5 ×1
openssl ×1
rpm ×1
tls ×1