标签: ssl

为什么托管服务提供商不允许通过端口 443 使用 SSL?

我正在建立一个网站并为该网站的域购买了 SSL 证书。当我问托管公司为什么https://www.example.com拒绝连接时,他们回答说 SSL 访问是在端口 41696 上配置的。当然,https://www.example.com:41696按照他们的承诺工作,但这真的不是我想用于面向客户的网站的 URL。

托管公司还表示,即使我们获得不同的套餐,他们也无法将其更改为 443。我从未从与我合作过的任何其他托管服务提供商那里听说过。他们是否有充分的理由不让这种情况发生?或者我可以在服务器上更改任何配置以使其接受端口 443 上的 HTTPS 请求?

linux ssl apache-2.2

18
推荐指数
3
解决办法
2440
查看次数

“tlsv1 alert unknown ca”是什么意思?

我正在尝试使用客户端证书进行 curl 请求,如下所示:

curl -E my.pem https://some.site
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

curl: (35) error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
Run Code Online (Sandbox Code Playgroud)
  • 这是什么意思?
  • 这个投诉是来自我连接的服务器还是我的 curl 客户端?
  • (我如何确定)在这种情况下 ca 是什么?
  • 我如何使它成为已知的ca?

ssl openssl ssl-certificate curl certificate-authority

18
推荐指数
1
解决办法
9万
查看次数

Web 服务器如何知道使用哪个密钥对进行 SSL 解密?

我的理解是,当 Apache 收到对它正在侦听的 TCP 端口之一(例如 80、443)的请求时,它将通过查看 HTTP 标头来决定正在请求哪个主机Host。然后服务器将知道它应该将请求重定向到哪个虚拟主机。

但是它对基于 SSL/TLS 的 HTTP 是如何工作的呢?由于整个 HTTP 请求都被加密(至少我相信我在某处读到过),因此只有在服务器解密数据后才能读取标头信息。但是为了解密,它需要知道要使用哪个密钥对,因为您可以在 Web 服务器上安装多个 SSL 证书。

那么服务器如何知道解密需要哪个密钥呢?


我的猜测

我可以想象 TLS 握手提供了必要的信息。


关于“可能重复”标志:

虽然我同意链接问题的答案和我自己的答案相似,但我必须说问题是不同的。是否或如何使用独立的 SSL 证书托管多个站点是毫无疑问的。相反,我的问题涉及潜在的技术方面。

ssl https web-server

18
推荐指数
2
解决办法
1654
查看次数

如何在非标准端口上运行 nginx SSL

我意识到这看起来至少是其他一些问题的重复,但我已经将它们读了好几遍,但仍然做错了什么。

以下是我的 myexample.com nginx 配置文件的内容,位于/etc/nginx/sites-available.

server {

  listen       443 ssl;
  listen       [::]:443 ssl;

  server_name myexample.com www.myexample.com;
  add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
  ssl_certificate /etc/letsencrypt/live/myexample.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/myexample.com/privkey.pem;

  #Configures the publicly served root directory
  #Configures the index file to be served
  root /var/www/myexample.com;
      index index.html index.htm;

}
Run Code Online (Sandbox Code Playgroud)

它有效,当我转到https://myexample.com 时,内容已提供并且连接是安全的。所以这个配置看起来不错。

现在,如果我将 ssl 端口更改为 9443 并重新加载 nginx 配置,则配置会重新加载而不会出错,但访问https://myexample.com 会在浏览器中显示错误(无法访问此站点 / myexample.com 拒绝访问连接。ERR_CONNECTION_REFUSED)

我在这里这里这里(以及其他)尝试了建议和文档,但我总是收到 ERR_CONNECTION_REFUSED 错误。

我应该注意,我可以使用非标准端口,然后将该端口显式键入 URL,例如https://myexample.com:9443。但我不想那样做。我想要的是让用户能够在任何浏览器中输入 myexample.com 并让 nginx 自动重定向到安全连接。

同样,当我使用标准 …

ssl nginx

18
推荐指数
1
解决办法
5万
查看次数

我的客户不接受我的 StartSSL 颁发的证书

我今天从 StartSSL 请求了一个新的 1 类服务器证书,它在 Apache 和 Dovecot +(Thunderbird/Outlook/OpenXChange)上运行良好,但是当我尝试使用 Apple 客户端(Mac/iPhone)连接到邮件服务器时,我收到一条 SSL 错误消息。

我已经链接了

  • 2_服务器证书
  • 1_中级证书
  • 根证书

按此顺序并将结果文件用作 dovecot 中的 ssl_cert。我仅有的另外两个 SSL 设置是ssl=requiredssl_key = </path

有没有人以前遇到过这个问题并提出了解决方案?

ssl

18
推荐指数
1
解决办法
3108
查看次数

有没有知名的 CA 颁发椭圆曲线证书?

背景

我已经看到 Comodo 有一个椭圆曲线根(“COMODO ECC 证书颁发机构”),但我在他们的网站上没有看到提到 EC 证书。

Certicom 是否拥有阻止其他发行人提供 EC 证书的知识产权?广泛使用的浏览器是否不支持ECC?ECC 是否不适合像 Web 服务器身份验证这样的传统 PKI 使用?或者只是没有需求?

由于 NSA Suite B 的建议,我有兴趣切换到椭圆曲线。但对于许多应用程序来说似乎并不实用。


赏金标准

要领取奖金,答案必须提供一个链接,指向知名 CA 网站上的一个或多个页面,其中描述了他们提供的 ECC 证书选项、价格以及购买方式。在这种情况下,“众所周知”意味着在 Firefox 3.5 和 IE 8 中必须默认包含正确的根证书。如果提供了多个符合条件的答案(一个人可以希望!),一个来自无处不在的 CA 的最便宜的证书将赢得赏金。如果这不能消除任何联系(仍然希望!),我将不得不自行选择一个答案。

请记住,有人总是要求至少获得一半的赏金,因此即使您没有全部答案,也请试一试。

ssl certificate ssl-certificate tls

17
推荐指数
4
解决办法
1万
查看次数

IIS7:如何将公钥和私钥作为两个单独的文件导入?

我们有一个客户将他们的流量定向到我们的 Web 服务器,并需要我们使用他们的通配符 SSL 证书。他们把它分成两部分给我,一个是公钥 ( .cer),另一个是包含私钥 ( .key) 的文件。我不知道如何让这两个在 IIS 中组合在一起,以便我可以将它绑定到一个站点。非常感谢您的帮助。谢谢!

iis ssl

17
推荐指数
2
解决办法
4万
查看次数

基于主机头的 SSL 证书选择:可能吗?

Web 服务器是否可以根据传入连接的主机标头选择要使用的 SSL 证书,或者该信息是否仅在建立 SSL 连接后可用?

也就是说,我的网络服务器是否可以在端口 443 上列出并在请求https://foo.com 时使用 foo.com 证书,如果请求https://bar.com或我正在尝试使用 bar.com 证书不可能的事情,因为服务器必须在知道客户端想要什么之前建立 SSL 连接?

ssl web-hosting https ssl-certificate

17
推荐指数
2
解决办法
2617
查看次数

使用 proxytunnel 和 nginx 通过 HTTPS 进行 SSH

我正在尝试使用 nginx 通过 https 连接设置 ssh。我还没有找到任何有效的例子,所以任何帮助将不胜感激!

~$ cat .ssh/config
Host example.net
  Hostname example.net
  ProtocolKeepAlives 30
  DynamicForward 8118
  ProxyCommand /usr/bin/proxytunnel -p ssh.example.net:443 -d localhost:22 -E -v -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)"

~$ ssh user@example.net
Local proxy ssh.example.net resolves to 115.xxx.xxx.xxx
Connected to ssh.example.net:443 (local proxy)

Tunneling to localhost:22 (destination)
Communication with local proxy:
 -> CONNECT localhost:22 HTTP/1.0
 -> Proxy-Connection: Keep-Alive
 -> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
 <- <html>
 <- <head><title>400 Bad Request</title></head>
 <- <body bgcolor="white">
 <- <center><h1>400 Bad …
Run Code Online (Sandbox Code Playgroud)

ssl ssh nginx proxy http-proxy

17
推荐指数
2
解决办法
2万
查看次数

防止 nginx 在用作反向代理时将流量从 https 重定向到 http

这是我的缩写 nginx vhost conf:

upstream gunicorn {
    server 127.0.0.1:8080 fail_timeout=0;
}

server {
    listen 80;
    listen 443 ssl;
    server_name domain.com ~^.+\.domain\.com$;

    location / {
        try_files $uri @proxy;
    }

    location @proxy {
        proxy_pass_header Server;
        proxy_redirect off;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 10;
        proxy_read_timeout 120;
        proxy_pass http://gunicorn;
    }
}
Run Code Online (Sandbox Code Playgroud)

同一台服务器需要同时提供 HTTP 和 HTTPS 服务,但是,当上游发出重定向(例如,在处理表单之后)时,所有 HTTPS 请求都将重定向到 HTTP。我发现唯一可以解决此问题的方法是更改proxy_redirect为以下内容:

proxy_redirect http:// https://;
Run Code Online (Sandbox Code Playgroud)

这对于来自 HTTPS 的请求非常有效,但如果通过 HTTP 发出重定向,它也会将其重定向到 HTTPS,这是一个问题。

无奈之下,我尝试了:

if ($scheme …
Run Code Online (Sandbox Code Playgroud)

ssl nginx https

17
推荐指数
2
解决办法
3万
查看次数