Articles of https

https通过仅http代理?

我的组织通过代理引导所有stream量。 作为代理设置,我们需要为http_proxy和https_proxy环境variables使用http代理设置。 如果我将https_proxyvariables设置为相同代理的https版本,则某些使用https_proxy envvariables的程序将停止工作。 那么这是否意味着代理不支持https连接? 那么在我的浏览器中正常加载的https网站呢?

一个虚拟主机的HTTPS失败

好吧,这听起来像是一个奇怪的问题…我很犹豫,甚至在这里发布,因为我不能很好地处理如何描述它,更不用说从哪里开始寻找解决scheme。 我有一个站点(Fedora 24,标准的LAMP堆栈,运行在Amazon EC2上),当通过HTTPS请求时,最近开始响应空白页面。 所以举个例子,如果你浏览http://example.com/coolscript.php,它可以正常工作,但是http://example.com/coolscript.php返回一个空白页面。 Web服务器日志显示两者都是HTTP 200,但HTTPS版本没有返回数据(后者,如下所示): 1.2.3.4 – – [22/Dec/2016:16:19:39 +0000] "GET /coolscript.php HTTP/1.1" 200 9069 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" 1.2.3.4 – – [22/Dec/2016:16:19:25 +0000] "GET /coolscript.php HTTP/1.1" 200 – "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" 我曾经尝试过不同的浏览器,个人电脑,networking等,所有的回应都是空白的。 你可能会觉得我有些东西与Apache中的虚拟主机定义混淆了,但是访问简单的文件(甚至是PHP脚本)可以正常工作。 该证书是有效的,好去。 在同一台服务器上的其他支持HTTPS的站点可以很好地使用不同的证书,甚至使用相同证书的虚拟主机别名也能正常工作。 […]

在CentOS7上使用Squid的CA证书问题

我在CentOS 7(一个Diladele设备)上pipe理运行Squid 3.5.10的公司Web代理,做SSL碰撞,并且在系统信任存储中添加新的CA证书时遇到一些麻烦,这导致我们的用户不能能够访问他们应该能够访问的几个受SSL保护的站点。 其中一个网站是https://www.sexierdating.com/ (是的,这听起来像是,但我们的政策是不在乎午餐时间人们冲浪的时间,只要它是合法的)。 来自Squid的错误消息通常是X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY ,这意味着由于某些原因Squid不信任或不能validation目标服务器证书。 到目前为止,从CA的支持页面抓取PEM格式的CA根证书,放入/etc/pki/ca-trust/source/anchors ,运行update-ca-trust并重新启动squid足以解决问题 – 但不是在我目前的情况下。 ca-certificates包是当前版本,因为我只是在机器上运行了一个完整的yum更新。 我目前遇到的所有域名都有“Go Daddy安全证书颁发机构 – G2”证书。 我从他们的支持页面( https://certs.godaddy.com/repository/ )下载了每个证书,如上所述安装它们,重新加载鱿鱼,但错误仍然存​​在。 我甚至用strace来观察update-ca-trust,看看它是否真正提取了正确的PEM文件 – 而且确实如此。 我奇怪的是,certs.godaddy.com下载页似乎使用了与某些有问题的域完全相同的根和中间证书,但该页面在Squid中正常工作。 当我比较Firefox中的证书时,我没有看到整体规范和algorithm有什么不同,但是仍然有效,其他方法则不行。 我在智慧结束,希望有人可以刺激我正确的方向来解决这个..我不能去GoDaddy证书的每一个第二页添加代理例外..

如何使example.com/about显示example.com/about.html? (Apache2的)

尝试使用example.com/about show example.com/about.html,而不必将url更改为/about.html时,最佳select是什么? 现在我正在尝试下面的代码,它只是返回一个404错误。 RewriteRule ^/about$ https://example.com/about.html [R=301,L] 编辑#1 W3DK我目前有多视图启用,但我仍然得到一个404错误。 这是我当前在VirtualHost中的当前设置 <Directory /var/www/public_html> Options All +MultiViews AllowOverride All Order allow,deny allow from all </Directory>

variablesSERVER_PROTOCOL究竟包含了什么(Apache 2.4)?

我有一个由Apache 2.4服务的网站,它应该通过HTTPS提供所有内容。 我已经有适当的redirect了,但没有发现任何病理情况。 我想改善这种情况,当我做作业的时候,在这个文档中遇到了下面这个例子: <If "%{SERVER_PROTOCOL} != 'HTTPS'"> Redirect "/admin/" "https://www.example.com/admin/" </If> 我稍微修改了这个以反映我的情况: <If "%{SERVER_PROTOCOL} != 'HTTPS'"> Redirect "/" "https://www.example.com/" </If> 现在,当试图从我的网站查看任何url时,浏览器进入无限redirect循环。 我怀疑这个例子实际上是错的。 SERVER_PROTOCOL在任何情况下都不包含HTTPS值。 相反,根据我在其他文章中读到的内容,它包含了诸如HTTP/1.1 (正如名字所期待的)。 所以我的问题是:什么情况下/什么情况下, SERVER_PROTOCOL究竟包含什么内容? 在几个小时的研究中,Apache官方文档网站是唯一一个将HTTPS列为SERVER_PROTOCOL的可能值的网站,原因可能是什么呢?

Nginx:“添加”https和redirecthttp到https之间有什么区别?

我有两个服务器块。 两者都做了类似的事情:允许我使用https。 现在我只是想知道,在一种情况下,我redirect从http到https的所有stream量。 在另一个它似乎好像我允许HTTPS。 有人可以向我解释,有什么不同? 因为当我请求我的域名时,即使使用http://test.example.com ,我仍然可以在两种情况下redirect到https。 有什么区别吗? 这是两个文件: 文件1-将httpredirect到https server { listen 80; listen [::]:80; server_name test.example.com return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; root /var/www/test/staging/current; index index.php index.html index.htm index.nginx-debian.html; server_name test.example.com; include snippets/ssl-test.example.com.conf; include snippets/ssl-params.conf; location / { try_files $uri $uri/ =404; } } 文件2 […]

使用Amazon AWS为虚拟设置HTTPS

我为我托pipe的网页运行Amazon AWS设置。 它使用单个EC2实例,并且可以在HTTP上正常工作。 但是最近我还需要提供HTTPS。 这是我完全困惑的地方。 EC2实例在Linux上运行Apache,PHP和MySQL 我有点(抽象地)了解HTTPS在非AWS领域的工作原理。 (我从来没有这样做过)。但是我认为这不是使用AWS实现的最好方式,这似乎涉及到在证书pipe理器中设置一些东西,然后将Elastic Load Balancer连接到它。 我有点不知所措 我在证书pipe理器中成功创build了一个证书。 我设立了一个看似合适的“目标”组的ELB,并把它连接到证书上。 当我尝试在主机前添加https://时,表示服务器拒绝连接。 当我进入ELB本身并访问它为ELB提供的URL时,我得到一个错误503服务临时可用。 我想我可能只是不理解这个权利,这里的AWS / HTTPSpost似乎都假设你知道你正在努力完成什么。 有人能为我解释这些事情(证书,ELB,EC2实例和Apache)是如何连接在一起的吗? 谢谢。

为什么必须在HTTP上不发送HSTS报头

为什么一个HSTS头不能通过HTTP发送? 会有什么伤害的; 客户端可以将其作为redirect到https的提示。

我可以在我的docker专用registry中重复使用来自letsencrypt的HTTPS证书吗?

我有一个暴露在互联网上的HAProxy服务器。 我已经使用了诸如registry.mydomain.com之类的子域来创buildletsencrypt证书,从而启用encryption连接。 现在,我想使用HAProxy将stream量从该URL转发到其他计算机上的某个Docker群组。 在这个群体中,我正在运行一个Dockerregistry,这个registry又轮询着这样一个encryption证书。 我试图重复使用我从HAProxy得到的。 不幸的是,当stream量通过HAProxy进入Docker Registry容器时,我得到了这个错误信息: 来自守护程序的错误响应:获取https:// [swarm-ip]:5000 / v1 / users / :x509:无法validation[swarm-ip]的证书,因为它不包含任何IP SAN 作为一个试图做networking事务的程序员,我觉得在这里有一些缺失,但我无法弄清楚。

如果反向代理或服务器本身parsingHTTPS

情况如下: 我有两台服务器在我的机器上运行。 一个是面向外的服务器,而另一个是第二个服务器的反向代理,它只监听本地主机并提供​​服务。 第二台服务器应该运行在https 。 我知道看到两个select: 只需在第二台服务器上实现https ,然后让反向代理服务器将https服务器发送给它。 在反向代理中实现https逻辑,为第二个服务器“抽象https”。 我甚至不知道这两个选项是否可行,更不用说可行了。 如果是的话,两种解决scheme的优缺点是什么? 编辑:在这种情况下,反向代理是nginx, 服务提供服务器是一个Node.js服务器。