错误
Error validating server certificate for 'https://server:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
- The certificate hostname does not match.
Certificate information:
- Hostname: Tom
- Valid: from Sun, 01 Feb 2009 03:51:25 GMT until Tue, 01 Feb 2011 03:51:25 GMT
- Issuer: Fake Company, NYC, New York, US
- Fingerprint: …Run Code Online (Sandbox Code Playgroud) 一位业务合作伙伴要求设置站点到站点 VPN,以便一些服务器可以通过 HTTPS 相互通信。我确信这不是必需的,甚至是不可取的。公平地说,它必须是更广泛政策的一部分,甚至可能是法律要求的一部分。但是,我想说服他们简单地向我们(并且仅限于我们)提供一个 IP 以及他们为 HTTPS 选择的端口。
有没有人有过类似的经历,或者不得不提出反对 VPN 的铁证词?
请允许我稍微扩展一下 - 我们有一个 Web 服务,它使用加密的 HTTP 连接启动与合作伙伴的相应服务的连接。该连接使用客户端证书进行身份验证。连接有防火墙,因此只有我们的 IP 可以联系服务。那么为什么需要VPN呢?
我正在尝试在 mod_dav_svn 提供的 SVN 存储库上强制使用 SSL (https)。这是我所拥有的:
<Location /svn/projectname>
DAV svn
SVNPath /var/repo/projectname
Require valid-user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/svn-auth-projectname
#here's what I tried (didn't work)
SSLCipherSuite HIGH:MEDIUM
</Location>
Run Code Online (Sandbox Code Playgroud)
但是,当我通过 http 登录时,我不会被重定向到 https;它停留在 http 中。为什么以上不起作用?我如何让这个 https 重定向工作?
我已经看到有关使用 mod_rewrite 的建议,例如:
# /dir/.htaccess
RewriteEngine on
RewriteCond %{SERVER_PORT}!443
RewriteRule ^(.*)$ https://www.x.com/dir/$1 [R,L]
Run Code Online (Sandbox Code Playgroud)
但是,我不完全明白这是做什么的,所以我害怕使用它。另外,它看起来更像是一个丑陋的黑客而不是正确的解决方案。
我面临以下问题:服务器饱和,因为当前的负载平衡策略是基于客户端 IP 的。一些企业客户端从大型代理后面访问我们的服务器,因此所有客户端对我们的负载平衡器都具有相同的 IP。我认为我们正在使用一些硬件负载平衡设备(如有必要,可以进一步调查)。我们需要保持会话亲和性(站点是在 ASP 中构建的),因此所有具有相同 IP 的请求都会路由到同一个节点。
由于所有通信都通过 HTTPS,因此没有请求数据(如会话 ID)可用于平衡器作为客户端鉴别器。有没有办法使用除 IP 之外的其他一些数据来区分客户端并将客户端路由到不同的节点?
注意:我需要保持平衡器和节点之间的流量安全(加密)。
我正在尝试决定是否对 web 应用程序使用 SSL。它不处理信用卡或财务数据,但它确实存储了出于个人/社会原因应该保密的信息。还有可能应该受到保护的通常的用户注册和登录功能。
我知道 SSL 会降低一些性能,因为服务器和客户端都进行了加密和解密。此外,据我所知,加密数据不会压缩得那么多,因此 Apachemod_deflate可能无法正常工作。
性能损失可能有多大?我打算做一些测试,但是我会对任何基于经验的评论感兴趣。
我正在尝试像这样设置我的本地 Apache 配置:
http://localhost/ 应该服务 ~/
http://development.somedomain.co.nz/ 应该服务 ~/sites/development.somedomain.co.nz/
https://development.assldomain.co.nz/ 应该服务 ~/sites/development.assldomain.co.nz/
我只想允许来自我们本地网络(192.168.1.* 范围)和我自己(127.0.0.1)的连接。
我已经设置了我的主机文件:
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
127.0.0.1 development.somedomain.co.nz
127.0.0.1 development.assldomain.co.nz
127.0.0.1 development.anunuseddomain.co.nz
Run Code Online (Sandbox Code Playgroud)
我的 Apache 配置如下所示:
Listen 80
NameVirtualHost *:80
<VirtualHost development.somedomain.co.nz:80>
ServerName development.somedomain.co.nz
DocumentRoot "~/sites/development.somedomain.co.nz"
DirectoryIndex index.php
<Directory ~/sites/development.somedomain.co.nz>
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost localhost:80>
DocumentRoot "~/"
ServerName localhost
<Directory "~/">
Options Indexes FollowSymLinks ExecCGI Includes
AllowOverride All
Order allow,deny
Allow from all …Run Code Online (Sandbox Code Playgroud) 情况: 我想通过 HTTPS 建立 SSH 会话隧道。我有一个非常严格的防火墙/代理,它只允许 HTTP、FTP 和 HTTPS 流量。
什么工作: 通过代理建立一个隧道到一个远程 linux 机器,在端口 443 上有一个 sshd 监听
问题: 我必须在端口 443 上运行一个 Web 服务器(轻量级)。代理禁止到其他端口的 HTTPS 流量。
到目前为止的想法: 设置虚拟主机并将所有传入请求代理到本地主机:(例如22)
$HTTP["host"] == "tunnel.mylinux.box" {
proxy.server = (
"" => (("host" => "127.0.0.1", "port" => 22))
)
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这行不通。我做错了什么,还是有原因,这行不通?
为什么 HTTPS 获胜?有谁知道 Netscape 和 Microsoft 都选择HTTPS而不是S-HTTP (RFC 2660)的任何具体原因?
在我看来,S-HTTP 更灵活,不需要单独的 IP 或端口来提供正确的证书,因为 S-HTTP 能够利用主机标头。知识产权空间在当时是一个问题吗?
我可以看到 HTTPS 比 S-HTTP 加密了更多连接数据的论点,但是如果您能轻松地分辨出用户访问了哪个网站,我就没有什么意义,因为每个 IP 只有一个站点(大多数时间)并且证书通常会说明什么域。
我的回答:由 Netscape 在 1993/1994 年创建的 SSL 和 HTTPS 在 1994 年的同一时间自然而然地添加到其中。HTTPS 的最初目标是在不做任何更改的情况下将现有协议改造为安全性。S-HTTP 直到 1999 年才出现并需要 HTTP 1.1,因此到那时 HTTPS 已经根深蒂固,实施 S-HTTP 几乎没有什么好处。谢谢大家。
我在这里遇到了一个非常奇怪的问题,每次我尝试在非 SSL 模式下浏览我的 Rails 应用程序时,Chrome (v16) 和 Firefox (v7) 一直强制我的网站在 HTTPS 中提供服务。
我的 Rails 应用程序使用 Capistrano、nginx、Passenger 和通配符 SSL 证书部署在 Ubuntu VPS 上。
我在 nginx.conf 中为端口 80 设置了这些参数:
passenger_set_cgi_param HTTP_X_FORWARDED_PROTO http;
passenger_set_cgi_param HTTPS off;
Run Code Online (Sandbox Code Playgroud)
我的 nginx.conf 的长版本可以在这里找到:https : //gist.github.com/2eab42666c609b015bff
ssl-redirect.include 文件包含:
rewrite ^/sign_up https://$host$request_uri? permanent ;
rewrite ^/login https://$host$request_uri? permanent ;
rewrite ^/settings/password https://$host$request_uri? permanent ;
Run Code Online (Sandbox Code Playgroud)
这是为了确保这三个页面在来自非 SSL 请求时使用 HTTPS。
我的 production.rb 文件包含这一行:
# Enable HTTP and HTTPS in parallel
config.middleware.insert_before Rack::Lock, Rack::SSL, :exclude => proc { |env| env['HTTPS'] != …Run Code Online (Sandbox Code Playgroud) 我试图让 apache 从 http 重定向到 https,但是我希望它们都在同一个端口上(20100,但我怀疑这是否重要)。基本上这里发生了什么,除了我不是为 webmin 做这件事。目前我已将其配置为提供 HTTPS,当我使用 HTTP 访问时,我得到:
Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
Run Code Online (Sandbox Code Playgroud)
似乎有很多有点相似的问题,但是我无法找到一个真正回答我的问题的问题。
https ×10
ssl ×5
apache-2.2 ×3
svn ×2
cluster ×1
firewall ×1
http ×1
lighttpd ×1
linux ×1
nginx ×1
performance ×1
permissions ×1
security ×1
ssh-tunnel ×1
virtualhost ×1
vpn ×1
xampp ×1