Articles of ssl

连接到MySQL安全 – MySQL的SSL vs Stunnel vs SSH隧道

我们有一个连接到MySQL服务器的PHP应用程序,我们希望保证Web和应用程序服务器和数据库之间的连接安全。 在高峰时段,Web服务器会与数据库build立数百个并发连接,并执行大量的小型读写操作。 我知道这不是最佳的,我正在努力减less与此并行的数据库连接数量。 我们目前没有连接到数据库的持久连接,虽然我们打算在未来,我想独立于此实现这一点。 硬件方面 – 与Web服务器一样,MySQL服务器非常笨重(16核心)。 他们是专用服务器。 然后我的问题围绕保护和encryption到数据库服务器的连接的最高性能的方式。 到目前为止,我的研究表明,主要的性能开销是build立SSL连接 – 一旦连接SSL,性能就会受到影响。 以下是关于确保连接的每种方法: MySQL SSL证书 – 就像正常的SSL一样工作。 可以使用客户端证书来防止未授权的连接 没有与我们现有的设置持久的连接。 仍然必须让MySQL在防火墙的开放端口上侦听。 安全通道。 设置一个端口到端口ssl隧道。 不必重新configurationMySQL。 可以closures正常的MySQL侦听端口,以防止恶意的MySQL连接尝试。 不支持持续连接。 未知的performance击中。 SSH隧道。 在客户端和服务器之间创build一个SSH隧道。 不必重新configurationMySQL。 可以closures正常的MySQL侦听端口,以防止恶意的MySQL连接尝试。 支持持续连接,但有时会退出。 未知的performance击中。 这是我所能得到的。 我意识到基准的局限性 – 根据我的经验,模拟真实世界的stream量是非常困难的。 我希望有人根据他们自己的MySQL安全经验提供一些build议? 谢谢

ssh-keygen .pub格式如何与.pem文件一起使用?

ssh-keygen命令生成.pub文件,它描述为“公共密钥文件”,但它们与我通常看到的大多数“公钥文件”是完全不同的格式,都是PEM格式。 ssh-keygen风格的文件如下所示: ssh-rsa AAAAB3NzaC1… user@host …而PEM文件是这样的: —–BEGIN CERTIFICATE—– MIIGZjCCBU6gAwIBAgIDCIrNMA0GCSqGSIb3DQEBBQUAMIGMMQsw… —–END CERTIFICATE—– 这两种格式是可以互换的,还是performance出根本不同的目的? 我碰到这个问题,因为我想获得我的PEM编码公钥文件的RSA2密钥指纹,但通常build议这样做的方法( ssh-keygen -l )说我的PEM编码文件“不是公共密钥密钥文件“。 顺便说一下,我知道这个答案 ,但它不包括由ssh-keygen生成的.pub文件。

安装在IIS7中使用SSL证书,安装“工作”,但证书列表消失

Windows Server 2008 R2,IIS7。 我们有Go Daddy的SSL证书。 这是一个通配证书,所以它将跨子域(例如* .domain.com)。 我按照http://support.godaddy.com/help/article/4801/installing-an-ssl-certificate-in-microsoft-iis-7上的说明安装证书。 我到了IIS步骤,我在哪里: 在左窗格中select服务器时,单击“安全证书”function 点击“完成证书请求” 导航到文件系统上的.crt文件 给它一个“友好”的名字,点击完成 证书在此“服务器证书”面板的主窗格中列出。 但是,如果我刷新页面,或导航回来,它已经消失了。 当试图将站点绑定到https时,证书没有列为可行的绑定。 这似乎是一个非常简单的过程,但显然我在这里错过了一些东西。 有任何想法吗? 编辑:我发现这个post,这似乎暗示当您尝试使用中间证书发生此行为。 当我从GoDaddy下载文件时,在一个zip文件中有2个。 1是gd_iis_intermediates,另一个是域名。 我安装了域名(扩展名.crt)。 似乎没有任何其他选项 – 从IIS安装另一个选项会出现错误“无法find与此证书文件关联的证书请求。必须在创build请求的计算机上完成证书请求”。 这就是说,似乎没有任何其他下载我可以使用。 还有一个提到,在“导出”证书作为pfx,并安装它的意见(和谷歌search后的其他地方)。 但我不知道如何导出它 – 即使通过certmgr.msc。 我还应该提到这个证书安装在运行IIS6的另一台计算机上(这个IIS7安装是为了实现故障切换,加上主要的是我们将IIS6升级到IIS7)。 但我无法弄清楚如何从电脑输出它。

使用代理通道和nginx通过HTTPS SSH

我试图通过https连接使用nginx设置SSH。 我还没有find任何工作的例子,所以任何帮助,将不胜感激! ~$ 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 [email protected] 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 -> […]

为什么启用TLS 1.2时Internet Explorer 11无法连接到HTTPS站点?

通常我根本不使用Internet Explorer。 我只在devise时使用它来进行接口testing(开发机器和未encryption的http)。 每周我都运行SSL实验室服务器testing,IE11能够访问我的网站。 今天,我发现我的第三方服务有问题。 某些特殊function不适用于Chrome或Firefox,因此我在Windows 7机器上启动了IE11。 而IE11显示我内置的错误页面女巫基本上只是说“页面不能显示”。 而典型的虚拟的bla bla像检查DNS等等。 整个错误页面上绝对没有encryption相关问题的迹象(就像普通浏览器所做的那样)。 回过头几个月,有一个schannel问题,阻止启用TLS1.2的IE访问HTTPS站点。 从那个时候,我的“IE浏览器的WTF清单”包含“禁用TLS1.2”作为检查点。 我应该怎么说… 禁用IE中的TLS1.2工作,我的网站再次可用 。 但是我不能在访问者浏览器上做到这一点。 现在到真正的问题: 为什么IE浏览器启用TLS 1.2时,Internet Explorer 11无法连接到我的HTTPS站点 ? 以及如何解决它在服务器端? SSL实验室告诉我,我的网站上一切正常 。 重要编辑:似乎IE11只能处理非前缀域,而不是TLS1.2启用时的前缀域。 没有前缀(www)的 域名 工作,而包含前缀(www)的域名不起作用 。 在服务器端我使用的是debian / 7 nginx / 1.7.8 openssl / 1.0.1e ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:-DES:!RC4:!MD5:!PSK:!aECDH:EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

将SSL协议信息通过HTTP头传递到后端

在Poodle漏洞最近暴露之后,我们的团队决定从SSLv3开始。 但在完全删除之前,他们希望警告 日常用户 ,他们的浏览器使用不推荐SSLv3。 所以,我们想出了这个想法 从前端SSL卸载(我们使用nginx)检测协议(SSLv3,TLS1等) 将这个信息(SSL协议)通过HTTP头传递给Apache后端。 然后,我们的后端代码将处理该标题,并在客户端使用SSLv3时发出警告。 我知道nginx具有proxy_set_headerfunction。 所以这个会很简单 proxy_set_header X-HTTPS-Protocol $something; 现在,问题是:显然nginx知道客户端使用的协议,但我怎么能通过HTTP头传递信息到后端? 谢谢 正如类似的线程Apacheredirect用户指出, 如果他们正在使用SSLv3 ,这个想法可能会变得非常非常糟糕的主意。 原因是TLS握手发生在通过TLS隧道发送HTTPstream量之前。 当我们的后端检测到SSL协议时,客户端可能在他的第一个请求中发送了私有数据。 对于永久和长期的解决scheme,我们应该考虑禁用SSLv3。

SSH问题:从套接字读取失败:由对等方重置连接

我在我们的一台服务器上编译了OpenSSH_6.6p1。 我可以通过SSHlogin升级的服务器。 但是我无法连接到运行OpenSSH_6.6p1或OpenSSH_5.8的其他服务器。 连接时,我收到如下错误。 Read from socket failed: Connection reset by peer 在日志中的目标服务器上,我看到如下所示。 sshd: fatal: Read from socket failed: Connection reset by peer [preauth] 我试着指定cipher_spec [ssh -c aes128-ctr目标服务器],如上所述,并能够连接。 如何configurationSSH默认使用密码? 为什么这里需要密码?

设置一个透明的SSL代理

我有一个用2个网卡设置的linux盒子来检查通过端口80的stream量。一个网卡用于上网,另一个网卡连接到networking交换机。 重点在于能够检查连接到该交换机的设备上的所有HTTP和HTTPSstream量,以用于debugging目的。 我已经写了iptables的以下规则: nat -A PREROUTING -i eth1 -p tcp -m tcp –dport 80 -j DNAT –to-destination 192.168.2.1:1337 -A PREROUTING -i eth1 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 1337 -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE 在192.168.2.1:1337,我有一个透明的http代理使用Charles( http://www.charlesproxy.com/ )进行录制。 一切正常的端口80,但是当我添加端口443(SSL)指向端口1337类似的规则,通过查尔斯我得到关于无效消息的错误。 我之前在Charles使用过SSL代理( http://www.charlesproxy.com/documentation/proxying/ssl-proxying/ ),但由于某种原因,透明地进行操作并不成功。 我search的一些资源说它不可能 – 如果有人能解释为什么,我愿意接受这个答案。 作为说明,我可以完全访问所描述的设置,包括连接到子网的所有客户端 – 所以我可以接受Charles的自签名证书。 从理论上讲,解决scheme不一定是查尔斯特有的,任何透明的代理都可以。 谢谢! […]

这个SSL证书链是否被破坏以及如何解决?

对于域example.com上的SSL证书,有些testing告诉我这个链是不完整的,而且由于Firefox保留了自己的证书存储,所以在Mozilla( 1,2,3 )上可能会失败。 其他人告诉我很好 ,就像Firefox 36,它告诉我,证书链是好的。 更新:我在Windows XP和MacOS X Snow Leopard上对Opera,Safari,Chrome和IE进行了testing,它们都正常工作。 它只在两个操作系统上的Firefox <36上失败。 我没有访问Linux上的testing,但对于这个网站,不到1%的访问者,大多数可能是机器人。 因此,这回答了原来的问题“这个设置是否会在Mozilla Firefox中显示警告”以及“这个SSL证书链是否被破坏?”。 因此,问题是如何find我需要在ssl.ca文件中放置哪些证书,以便Apache可以保证它们保持Firefox <36不被窒息? PS:作为一个侧面说明,我用来testing证书的Firefox 36是一个全新的安装。 没有抱怨的机会,因为它在上次访问使用相同链的站点时下载了中间证书 。

IIS 7.0 – SSL证书 – 续订还是新的?

我的一个SSL证书(仅限简单域validation)即将在Windows 2003 IIS 7.0服务器上过期。 我从另外一家供应商那里得到了更好的报价,而最初签发我的证书的人不想谈判更低的价格。 无论如何 – 通过IIS中的证书向导,我可以select“更新”或“卸载”,然后安装新的证书。 所以 – 我可以使用“更新”选项创build一个证书请求,并将其传递给新的供应商,或者我需要从“新”请求开始? 对于新供应商来说,以前的证书是否由另一个签名者签发? 问题是,我不想停止服务器(至less是安全部分),因为删除了旧的证书并创build了新的CSR,并等待新的证书安装。 或者,是否可以select在不删除旧证书的情况下准备新的CSR?