我想在nginx中创build一个规则来做两件事情: 删除“www”。 来自请求URI 如果请求URI是“http”,则redirect到“https” 有很多如何做每个单独的事情的例子,但我不能找出一个正确的解决scheme(即不创build一个redirect循环,并正确处理所有情况)。 它需要处理所有这些情况: 1. http://www.example.com/path 2. https://www.example.com/path 3. http://example.com/path 4. https://example.com/path 这些应该都在https://example.com/path(#4 )没有循环。 有任何想法吗?
我正在寻找一种简单的方法来知道服务器是否在网站上使用服务器名称指示SSL扩展作为其HTTPS证书。 一个使用浏览器或Unix命令行的方法是好的。 谢谢!
HTTPS使用TCP还是UDP?
假设一个网站在多个服务器之间是负载均衡的。 我想运行一个命令来testing它是否工作,如curl DOMAIN.TLD 。 所以,要隔离每个IP地址,我手动指定IP。 但是许多网站可能在服务器上,所以我仍然提供一个主机头,如下所示: curl IP_ADDRESS -H 'Host: DOMAIN.TLD' 。 据我了解,这两个命令创build完全相同的HTTP请求。 唯一的区别是在后者中,我从cURL中取出DNS查找部分,并手动执行(如果我错了,请纠正我)。 迄今为止都很好。 但是现在我想为HTTPSurl做同样的事情。 再次,我可以testing它像这个curl https://DOMAIN.TLD 。 但我想手动指定IP,所以我运行curl https://IP_ADDRESS -H 'Host: DOMAIN.TLD' 。 现在我得到一个cURL错误: curl: (51) SSL: certificate subject name 'DOMAIN.TLD' does not match target host name 'IP_ADDRESS'. 我当然可以通过告诉cURL不要关心证书(“-k”选项)来解决这个问题,但这并不理想。 有没有办法隔离与被SSLauthentication的主机连接的IP地址?
我可以通过自己的CA创build一个自签名的SSL证书。 但是,如何让浏览器将证书显示为“扩展validationSSL证书”呢? 我可以自己创build一个,并教我的浏览器将其显示为EV?
我有一个运行Jenkins的Fedora服务器,我通过yum安装。 一切都还好,我可以用http://ci.mydomain.com访问它。 但现在,我想通过https://ci.mydomain.com访问它,所以用户名和密码的login被encryption。 我该怎么做? 以下是我的/etc/sysconfig/jenkins文件。 开始jenkins的作品,但我不能访问jenkins与https://ci.mydomain.com或http://ci.mydomain.com:443网页浏览器,… ## Path: Development/Jenkins ## Description: Configuration for the Jenkins continuous build server ## Type: string ## Default: "/var/lib/jenkins" ## ServiceRestart: jenkins # # Directory where Jenkins store its configuration and working # files (checkouts, build reports, artifacts, …). # JENKINS_HOME="/var/lib/jenkins" ## Type: string ## Default: "" ## ServiceRestart: jenkins […]
我有一个通过HTTPS运行的前端Web服务器 – 这是公开的 – 即端口是开放的。 我也有一个后端API服务器,我的networking服务器发出API请求 – 这是公开的,需要身份validation – 端口是打开的。 这两台服务器通过HTTPS运行。 在API服务器的后面,还有很多其他的服务器。 API服务器反向代理这些服务器。 这些其他服务器的端口不对传入stream量开放。 他们只能通过API服务器进行交谈。 我的问题…“很多其他服务器”是否需要通过HTTPS运行,或者,因为它们不能被外部访问,它们可以安全地运行在HTTP上吗? 我认为这是一个普遍的问题,但我找不到答案。 谢谢。 如果这是一个骗局,请指出我的正确答案。
我有几台服务器在同一台机器上运行,一些只使用http,一些使用http和https。 有几个服务器块定义在主configuration文件中包含的单独文件中。 我为httpbuild立了一个“默认”服务器,这个服务器将为通用的“维护页面”提供与其他configuration文件中其他服务器名称不匹配的请求。 http缺省服务器按预期工作,它使用server_name“_”,它首先出现在包含列表中(因为我已经观察到,在服务器间重复server_name的情况下,首先使用的是一个)。 这很好。 我期望相同的确切的服务器块(只有切换“听80默认服务器”“听443默认服务器”,而不是服务页面“返回444”),但事实并非如此。 相反,新的默认https服务器实际上是抓取所有传入的https连接并导致它们失败,尽pipe其他服务器块为传入请求提供了更合适的server_name。 删除新的默认https服务器将导致恢复半正确的行为:带有https的网站将全部正确加载; 但没有HTTPS的网站都将被路由到包含文件中的第一个HTTPS服务器(根据文档,如果没有“default_server”出现,那么出现的第一个服务器块将是“默认”)。 所以我的问题是,什么是正确的方式来定义一个“默认服务器”在Nginx的SSL连接? 为什么当我明确地设置一个“default_server”时,它变得贪婪并且抓住所有的连接,而当我隐式地让nginx决定“默认服务器”时,它就像我所期望的那样工作(把不正确的服务器设置为默认服务器,行为正确)? 这是我的“默认服务器”。 Http工作而不破坏其他服务器。 Https打破其他服务器,并消耗所有。 server { listen 443 ssl default_server; server_name _; access_log /var/log/nginx/maintenance.access.log; error_log /var/log/nginx/maintenance.error.log error; return 444; } server { listen *:80 default_server; server_name _; charset utf-8; access_log /var/log/nginx/maintenance.access.log; error_log /var/log/nginx/maintenance.error.log error; root /home/path/to/templates; location / { return 503; } error_page 503 @maintenance; […]
我正在使用Apache2和Passenger进行Rails项目。 我想为testing目的创build一个自签名的SSL证书 。 sudo openssl rsa -des3 -in server.key -out server.key.new 当我input上面的命令,它说 writing RSA key Enter PEM pass phrase: 如果我没有inputpass phrse,我会得到下面的错误 unable to write key 3079317228:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:869:Yo u must type in 4 to 1024 characters 3079317228:error:0906406D:PEM routines:PEM_def_callback:problems getting passwor d:pem_lib.c:111: 3079317228:error:0906906F:PEM routines:PEM_ASN1_write_bio:read key:pem_lib.c:382 是否有可能生成一个RSA密钥没有给pass phrase ,因为我不知道如何/etc/init.d/httpd脚本将启动HTTP服务器没有人为干预(即如果我给一个4字符的密码短语,它期望我在启动Apache HTTP服务器时提供这个)。
我无法理解为什么我们需要购买SSL证书,我们可以使用openSSL在本地生成证书。 我购买的证书和我在本地生成的testing证书之间有什么区别? 这只是一个大骗局吗?