我最初将 Nginx 配置设置为自动将 HTTP 重定向到 HTTPS。由于我的工作安全策略和 Cloudflare 集成,HTTPS 无法在我的网络内解析。
我只想删除强制重定向到 HTTPS。但是在用 URI 重写注释掉块后,服务器仍然会自动重定向。
这是我的 Nginx 默认配置
#HTTPS redirect (if necessary)
#server {
# listen 80;
# server_name example.com;
# rewrite ^ https://$server_name$request_uri? permanent;
#}
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
listen 443 ssl spdy;
root /var/www/example/current/public;
index index.php index.html index.htm;
spdy_chunk_size 8k;
spdy_headers_comp 7;
server_name example.com;
# Point to ssl certificates
ssl_certificate /root/example.com.crt;
ssl_certificate_key /root/example.com.key;
# Allow only secure TLS protocols
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_prefer_server_ciphers on;
#ssl_ciphers …Run Code Online (Sandbox Code Playgroud) 我在让 proxypass 在 apache 中工作时遇到问题。
我的配置文件如下:
<VirtualHost 1.2.3.4:443>
ServerName example.com
ServerAlias www.example.org
ServerAdmin info@example.org
DocumentRoot /home/admin/web/knyz.org/public_html
ScriptAlias /cgi-bin/ /home/admin/web/knyz.org/cgi-bin/
Alias /vstats/ /home/admin/web/knyz.org/stats/
Alias /error/ /home/admin/web/knyz.org/document_errors/
#SuexecUserGroup admin admin
CustomLog /var/log/apache2/domains/knyz.org.bytes bytes
CustomLog /var/log/apache2/domains/knyz.org.log combined
ErrorLog /var/log/apache2/domains/knyz.org.error.log
<Directory /home/admin/web/knyz.org/public_html>
AllowOverride All
SSLRequireSSL
Options +Includes -Indexes +ExecCGI
</Directory>
<Directory /home/admin/web/knyz.org/stats>
AllowOverride All
</Directory>
SSLEngine on
SSLVerifyClient none
SSLCertificateFile /home/admin/conf/web/ssl.knyz.org.crt
SSLCertificateKeyFile /home/admin/conf/web/ssl.knyz.org.key
SSLCertificateChainFile /home/admin/conf/web/ssl.knyz.org.ca
<IfModule mod_ruid2.c>
RMode config
RUidGid admin admin
RGroups www-data
</IfModule>
<IfModule itk.c>
AssignUserID admin admin
</IfModule>
IncludeOptional /home/admin/conf/web/sapache2.knyz.org.conf*
##ISSUE …Run Code Online (Sandbox Code Playgroud) 我需要检查通过我的 Linux (CentOS 6.5) 路由器的部分 HTTPS 流量。特别是我需要知道用户请求的是哪个目标网站主机。用户可以是我无法控制的访客浏览器/设备(即无法部署证书)。我不关心内容/有效负载,我只需要将目标 URL 记录到日志文件中:-)
它在技术方面是开放的,我不受限制,因此可以使用 iptables、squid 或任何其他在 Linux 上运行的过滤器(最好不是商业过滤器 - 其中一些是由设备许可的)。或者甚至是上述的组合。
我很确定这是可以做到的,因为如果我可以在我的 Windows 机器上安装 Fiddler 并使用 Chrome 浏览 HTTPS 网站而没有证书警告并在 Fiddler 中看到“主机”。
我花了一些时间来寻找如何做到这一点,但到目前为止,需要在客户端浏览器上安装证书受到了限制。那,我只能找到 iptables 的字符串匹配,但据我所知,HTTPS 数据包是加密的(我错误地认为目的地不会被加密?)
对此的任何帮助将不胜感激,希望我已经涵盖了足够详细的要求。
我正在配置将用作反向代理的新 Nginx 服务器。我们有运行 Apache 的旧 Debian 服务器。在这个 apache 服务器上,只有 HTTPS 访问的站点我想隐藏在代理后面。
从代理到上游 Apache 的连接必须通过 HTTPS(服务器位于不同的位置,Apache 只允许 HTTPS 访问)。
我的问题是从 Nginx 到 Apache 的连接失败。从浏览器到上游通过 HTTPS 的正常连接没有问题。从同一代理到 Nginx 上游的连接有效。当 Nginx 尝试连接到上游 Apache 连接失败并重新协商握手失败时
来自代理 Nginx 的日志(调试级别)仅表示:
2016/04/07 15:51:08 [error] 5855#0: *1 upstream prematurely closed connection while reading response header from upstream, client: 94.113.97.9, server: procrastination.com, request: "GET / HTTP/1.1", upstream: "https://77.240.191.234:443/", host: "procrastination.com"
Run Code Online (Sandbox Code Playgroud)
从上游 Apache 登录:
[Thu Apr 07 15:36:48 2016] [info] Initial (No.1) HTTPS request received for child 35 (server …Run Code Online (Sandbox Code Playgroud) 我在 Apache Web 服务器上托管了多个站点。
站点 A 是 HTTPS,站点 B 是 HTTP。
当人们使用 HTTPS 访问站点 B 时(我不知道他们为什么这样做,因为它没有 HTTPS 并且从来没有,但他们这样做了),他们被定向到站点 A。我该如何解决这个问题并让他们继续使用B站?
我的组织通过代理引导所有流量。作为代理设置,我们需要为 http_proxy 和 https_proxy 环境变量使用 http 代理设置。
如果我将 https_proxy 变量设置为同一代理的 https 版本,则某些使用 https_proxy 环境变量的程序将停止工作。
那么这是否意味着代理不支持https连接?在我的浏览器中正常加载的 https 网站呢?
看起来像 IP 地址的 HTTPS 证书而不是域名的 HTTPS 证书是可能的。
我的目标是在 IP 地址上使用 HTTPS,例如:https://XX.YY.WW.ZZ
但是我找不到任何提供此类服务的公司:有什么建议吗?
我只是从第三方那里得到一台 Linux 服务器。然后我通过 SecureCRT 创建一个 SSH 隧道:https://www.vandyke.com/support/tips/socksproxy.html,其中 Linux 服务器用作网关服务器。
但是,Linux 服务器不是 100% 安全的,因为它是由第三方管理的。现在如果我通过SSH隧道连接到HTTPS服务器,发送到HTTPS服务器的密码会被Linux服务器的管理员盗用吗?
我在谷歌上搜索了一下,似乎 nginx 没有提供一种基于路径进行客户端 TLS 验证的方法。我只是想问社区情况是否仍然如此,或者是否有某种解决方法。
我基本上是想拥有一个管理页面domain-name/admin,其中访问公共域名只需要服务器端 TLS 验证,但我只想对 /admin 路径进行双向 TLS 验证。这甚至可能而无需为管理员获取新域吗?
我有一个码头基础设施,包括
1 个 nginx 反向代理 1 个 nginx 网络服务器 1 个 php7.0 fpm 服务器
nginx 反向代理和网络服务器都使用相同的 docker 镜像,但只是加载了不同的站点配置。
在反向代理上,它还提供静态 javascript SPA 以及反向代理到为我的 api 提供服务的网络服务器。
所以两个 nginx 容器都运行相同的 /etc/nginx/nginx.conf
我这里的 ssl 配置是
##
# SSL Settings
##
ssl_stapling off;
ssl_session_timeout 1h;
ssl_session_tickets off;
ssl_stapling_verify off;
ssl_ecdh_curve secp384r1;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
ssl_certificate /srv/ssl/nginx-selfsigned.crt;
ssl_certificate_key /srv/ssl/nginx-selfsigned.key;
ssl_dhparam /srv/ssl/dhparam.pem;
Run Code Online (Sandbox Code Playgroud)
我的反向代理站点配置是这样的
server {
listen 1025 ssl http2;
listen [::]:1025 ssl http2;
server_name api.site.com;
location / {
#include /etc/nginx/naxsi.rules; …Run Code Online (Sandbox Code Playgroud)