标签: https

反向代理可以将 SNI 与 SSL 传递一起使用吗?

我需要使用一个外部 IP 地址通过 https 为多个应用程序提供服务。

不应在反向代理上管理 ssl 证书。它们安装在应用程序服务器上。

是否可以将反向代理配置为使用 SNI 并通过 ssl 在端点处终止?

这可以使用 Nginx 或 Apache 之类的东西吗?配置是什么样的?

https reverse-proxy sni

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

为什么我的通配符 SSL 证书会导致二级子域出现域不匹配错误?

我有一台服务器https://www.groups.example.com- 在 FireFox 中,我收到“ This Connection is Untrusted”消息和“技术细节”说

www.groups.example.com uses an invalid security certificate. 
The certificate is only valid for the following names: 
*.example.com, example.com (Error code: ssl_error_bad_cert_domain)
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我还需要提供哪些其他信息?刚刚获得安装确认,但我 99% 确定它是 Linux 并使用 VHOSTS。确认后将更新问题。

www.groups.example.com 是否被视为具有 2 个级别的子域?

发行人是 DigiCert

ssl https ssl-certificate

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

将通配符子域重定向到 https (nginx)

我有一个通配符 ssl 认证,我正在尝试将所有非 ssl 流量重定向到 ssl。目前,我正在使用以下内容重定向工作正常的非子域 url。

server {
listen      80;
server_name mydomain.com;

#Rewrite all nonssl requests to ssl.
rewrite     ^ https://$server_name$request_uri? permanent;
}
Run Code Online (Sandbox Code Playgroud)

当我对 *.mydomain.com 做同样的事情时,它在逻辑上会重定向到

https://%2A.mydomain.com/
Run Code Online (Sandbox Code Playgroud)

你如何将所有子域重定向到它们的 https 等价物?

nginx https

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

http 工作时 https 超时

我已经为我的域设置了 SSL,它从 Apache 的角度工作。

问题是通过 HTTPS 访问我的域有时会导致超时。当它不起作用时,通过 HTTP 访问我的网站需要一些时间,但它永远不会超时。

为什么 HTTPS 会发生这种情况,有没有办法控制 HTTPS 的超时时间?

我的配置:CentOS 5 上的 Apache 2.2.11

NameVirtualHost *:443
<VirtualHost *:443>
    SuexecUserGroup foo
    DocumentRoot /home/mydomain/www/
    ServerName example.com

    SSLEngine on
    SSLProtocol -all +TLSv1 +SSLv3
    SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
    SSLCertificateFile /path/example.com.com.crt
    SSLCertificateKeyFile /path/example.com.key
    SSLVerifyClient none
    SSLProxyVerify none
    SSLVerifyDepth 0
    SSLProxyVerifyDepth 0
    SSLProxyEngine off
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
    <Directory "/home/mydomain/www">
            SSLRequireSSL
            AllowOverride all
            Options +FollowSymLinks +ExecCGI -Indexes
            AddHandler php5-fastcgi .php
            Action php5-fastcgi /cgi-bin/a.fcgi
            Order allow,deny
            Allow from all
    </Directory>
    <Directory …
Run Code Online (Sandbox Code Playgroud)

ssl https timeout apache-2.2

21
推荐指数
1
解决办法
3万
查看次数

Chrome 报告 ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY 通过 HTTPS 连接到本地网络服务器

概括

ERR_SPDY_INADEQUATE_TRANSPORT_SECURITY当我尝试通过 HTTPS 连接到我的本地网络服务器时,Chrome 正在报告。我几乎可以肯定这个问题与我最近的 Windows 10 升级有关,但我不知道如何解决它。

什么有效

这是事件链,我在开始时安装了 Windows 8.1 Pro:

  1. 使用以下命令生成了用作受信任根 CA 的自签名证书: makecert.exe -pe -ss Root -sr LocalMachine -n "CN=local, OU=development" -r -a sha512 -e 01/01/2020
  2. 从受信任的根 CA 生成特定于应用程序的证书: makecert.exe -pe -ss My -sr LocalMachine -n "CN=myapp.local, OU=Development" -is Root -ir LocalMachine -in local -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -a sha512 -e 01/01/2020 -sky -eku 1.3.6.1.5.5.7.3.1
  3. 添加了指向的HOSTS文件条目myapp.local127.0.0.1
  4. 创建了一个绑定到myapp.local域并且只侦听HTTPS请求的IIS 8.5应用程序
  5. myapp.local证书分配给网站

通过此设置,我可以轻松地从 Chrome 访问我的本地网站,而且没有任何证书或安全警告。正如预期的那样,浏览器显示了绿色挂锁。

什么不起作用 …

iis https google-chrome ssl-certificate windows-10

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

“SSL 输入过滤器读取失败”Apache 和 443

我的 apache conf 有点问题。当我阅读错误日志时,我可以看到以下内容:

[client xxx.xxx.xx.xx] AH01964: Connection to child 1 established (server www.mywebsite.com:443)
[client xxx.xxx.xx.xx] AH01964: Connection to child 6 established (server www.mywebsite.com:443)
[client xxx.xxx.xx.xx] AH01964: Connection to child 10 established (server www.mywebsite.com:443)
[client xxx.xxx.xx.xx] AH01964: Connection to child 15 established (server www.mywebsite.com:443)
[client xxx.xxx.xx.xx] AH01964: Connection to child 18 established (server www.mywebsite.com:443)
(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.
(70014)End of file found: [client xxx.xxx.xx.xx] AH01991: SSL input filter read failed.
(70014)End of …
Run Code Online (Sandbox Code Playgroud)

ssl https apache-2.2

20
推荐指数
1
解决办法
8万
查看次数

使用 nginx 的单个端口处理 http 和 https 请求

我想知道 nginx 是否能够在同一个端口上处理 http 和 https 请求。[*]

这就是我想要做的。我正在运行处理 http 请求的 Web 服务器 (lighttpd),以及通过 https 为文档树的特定部分提供服务的 C 程序。这两个进程运行在同一台服务器上。

在防火墙级别,我只能有一个端口将流量转发到此服务器。所以我想做的是在这台服务器上设置 nginx 以便它侦听单个端口上的请求,然后:

A) 重定向所有http://myhost.com/*请求,以便它们转到 localhost:8080(lighttpd 正在侦听的位置)

B) 如果用户请求以 https://myhost.com/app 开头的 URL,它会将该请求发送到 localhost:8008(C 程序)。请注意,在这种情况下,远程浏览器和 nginx 之间的流量必须加密。

你认为这可能吗?如果是,怎么做?

我知道如何使用两个不同的端口来做到这一点。我面临的挑战是仅使用一个端口来完成此操作(不幸的是,我无法控制此特定环境中的防火墙配置,因此这是我无法避免的限制)。使用诸如通过 ssh 进行反向端口转发来绕过防火墙的技术也不起作用,因为这应该适用于只有 Web 浏览器和 Internet 链接的远程用户。

如果这超出了 nginx 的能力,您知道还有其他产品可以满足此要求吗?(到目前为止,我在使用 lighttpd 和 pound 进行设置时没有成功)。我也更喜欢避免使用 Apache(尽管如果这是唯一可能的选择,我愿意使用它)。

提前致谢,亚历克斯

[*] 为了清楚起见,我说的是通过同一端口处理加密未加密的 HTTP 连接。加密是通过 SSL 还是 TLS 完成都没有关系。

http nginx https lighttpd

19
推荐指数
4
解决办法
3万
查看次数

攻击者能否通过 HTTPS 嗅探 URL 中的数据?

如果连接是通过 HTTPS 建立的,那么 URL 中包含的数据是否可以被视为安全?例如,如果用户单击电子邮件中指向https://mysite.com?mysecretstring=1234的链接,攻击者是否有可能从 URL 中获取“mysecretstring”?

security url https

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

在 Apache 和 CentOS 下使用虚拟主机配置 SSL

我有两个由 CentOS 实例提供服务的网站。其中一个启用了 SSL,另一个仅在端口 80 上提供服务。

所以,http://siteone.comhttps://siteone.com两个做工精细,一样http://sitetwo.com

问题是https://sitetwo.com显示https://siteone.com.

我有一个可用的公共 IP 地址。

我认为我无法从一个 IP 为两个 https 站点提供服务,但是否至少有一种方法可以将 https 重定向到端口 80,https://sitetwo.com而不是为错误的站点提供服务?

sudo apachectl -S
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using xxx.xxx.xxx.xxx. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:

?
xxx.xxx.xxx.xxx:443     siteone.com (/etc/httpd/sites-enabled/ssl-siteone.conf:1)
*:80                   is a NameVirtualHost
         default server beta-siteone (/etc/httpd/sites-enabled/beta-siteone.conf:1)
         port 80 namevhost beta-ilegis (/etc/httpd/sites-enabled/beta-siteone.conf:1)
                 alias beta.siteone.com
         port 80 …
Run Code Online (Sandbox Code Playgroud)

https centos virtualhost

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

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

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

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

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


我的猜测

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


关于“可能重复”标志:

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

ssl https web-server

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