Articles of 身份validation

nginx将内部http服务公开为https子域

我在这个网站和类似的网站上发现了几个部分的答案,但是我不知道如何把它们放在一起,或者答案就在那里,我无法识别它: 我正在努力实现的是: 我有一个在局域网中运行的http服务(我已经正确设置了dnsmasq): http://subdomain1.domain.com:1234/ 我想公开它作为互联网(也外部DNS工作正常): https://subdomain2.domain.com:443/ 用户authentication由nginx处理。 我也想(必须)在浏览器中保持URL不被修改。 我已经尝试过几个类似问题的组合,但似乎没有什么组合。 这是我的最后一次尝试: ssl_certificate /var/www/domain.com/domain_com.crt; ssl_certificate_key /var/www/domain.com/domain_com.key; server { listen 443 default_server; server_name subdomain1.domain.com; location / { auth_basic "Restricted"; auth_basic_user_file /var/www/domain.com/domain.com.passwords; proxy_pass http://subdomain1.domain.com:1234/; proxy_set_header Host $http_host; # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect https://subdomain2.domain.com/ http://subdomain1.domain.me:1234/; } } 我得到的是:“错误107(net :: ERR_SSL_PROTOCOL_ERROR):SSL协议错误。” 更新: 我想我find了一个解决scheme,但审查仍然不胜感激。 这一个也重写http访问通过https。 ssl_certificate /var/www/domain.com/domain_com.crt; ssl_certificate_key […]

将parameter passing给nginx的auth_request模块

我想要保护一个活HLSstream。 我想使用auth_request模块。 我想通过传递一个密钥来检查请求是否有效。 所以像这样: http : //domain.com/hls/stream.m3u8?key=xxxxxxx 我在nginx.conf中有以下设置: location /hls { alias /tmp/hls; auth_request /hls/auth; } location /hls/auth { proxy_pass http://localhost.com:8080/on_play.php; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; } 现在我需要获取http://localhost.com:8080/on_play.php中的key = xxxxx。 我尝试了很多,但似乎没有任何工作。 我也试过类似的东西: location /hls { alias /tmp/hls; auth_request http://localhost.com:8080/on_play.php?key=$arg_key; } 但是这也是行不通的。 在on_play.php中似乎没有获得关键参数的可能性 $ _SERVER [“REQUEST_URI”]也不包含参数。 也试过下面的configuration: 我也尝试过这样的事情,但是这也不起作用: location ~ ^/hls/(long|short)/([0-9a-zA-Z]+)\.m3u8 { alias […]

SSL连接失败,服务器没有证书请求,从运行在Java 6上的本地Websphere AS连接到AWS上的Nginx

我很难通过客户端身份validation连接到服务。 服务(“SecureService”)位于AWS上。 客户端在我的Mac上的Linux VM上。 SecureService上的Nginx对我在端口443上访问的资源执行客户端身份validation。使用概念validationJava独立应用程序(openjdk 1.8.0_60)或其他客户端,可以从同一个VM连接到同一个SecureService (wget,openssl),但不是来自Websphere AS上托pipe的相同Java代码(确实依赖于较旧的库和IBM J9 VM,构build版本2.6,JRE 1.6.0)。 但是,在/ etc / hosts中将SecureService主机名重新映射到127.0.0.1时,Websphere AS上相同的Java代码将成功连接到需要来自同一证书颁发机构的客户端身份validation的本地openSSL服务器。 SecureServer在失败连接中的响应报告“400未发送必需的SSL证书”…“400错误请求”,但tcpdump数据包捕获显示不发送证书请求,而在所有其他情况下。 这是令人费解的,并导致我认为在ClientHello消息中有一些服务器不喜欢的东西,尽pipeClientHello消息在连接成功和失败时非常相似。 一个很奇怪的细节还是,tcpdump从来没有捕获到我的客户端的第一个TCP SYN数据包到失败的通信服务器,而它捕获其余的(SYN + ACK从服务器,然后ACK从客户端)和所有的数据包SYN,SYN + ACK,ACK)。 所有通信都使用TLSv1.2。 连接失败: (客户端< – >服务器) < – SYN,ACK – >确认 – >客户端你好 < – 确认 < – 服务器你好,证书,服务器你好完成 – >确认 – >客户端密钥交换 < – 确认 – >改变Cypher规格 < – 确认 – […]

使用NGINX auth_request代理设置标题

我想使用auth_request设置一个成功的authentication请求头,然后将其传递给下一个代理内联,将处理实际的请求。 我已经设置NGINX和各种代理做他们的事情,但是我不确定如何从服务器(图中的AUTH代理)设置标题,我使用的身份validation请求,以便该标题传递给下一台服务器(图中的BACKEND SERVER) NGINX —- auth request —-> AUTH PROXY | | <— 201 <—— SUCCESS | —-> underlying request —-> BACKEND SERVER 我的NGINXconfiguration看起来像 server { listen 9123; resolver 10.3.0.2; resolver_timeout 30; location / { auth_request /_auth; proxy_set_header x-user $http_x_user; proxy_pass http://backend_server; } location = /_auth { internal; proxy_pass https://auth; proxy_pass_request_body off; proxy_set_header Content-Length ""; […]

如何在安装到数据中心之前validation服务器的硬件?

任何人都可以帮助理解我怎么可能validation和validation服务器的硬件configuration,我要安装到数据中心? 问题是客户买了noname服务器,我们需要validation它的configuration对应spec(validation),并确保所有组件进入工作(validation)。 这是第一个问题。 第二个是服务器将数百… 对不起,我是新手,所以我会很感激任何帮助。 更多的细节:所有的服务器都是基于x86的,将来客户会在其上安装Linux。

带有模拟的Child_process?

我试图在我的节点脚本中创build一个虚拟的bash,在另一个用户上下文中执行命令。 var spawn = require('child_process').spawn; var terminal = spawn('bash', [], { uid: 1001 }); terminal.stdout.on('data', function (data) { console.log('stdout: ' + data); }); terminal.stderr.on('data', function (data) { console.log('stderr: ' + data); }); terminal.on('close', function (code) { console.log('child process exited with code ' + code); }); terminal.stdin.write('echo Hello $USER'); terminal.stdin.end(); 以root身份执行这个输出后, Hello root 正如你可以在我的例子中看到我已经传递了一个用户ID到产卵,但是这不影响任何东西。 我期望的输出是(假设用户名是'foobar'): Hello […]

如何在perl中进行validation

我正在使用一个perl脚本作为inputpath在Linux目录。 目录中有xml文件。 Perl脚本遍历所有的xml文件,并将每个xml文件转换为json格式。 我有我的代码编写和正常工作,但我卡在validation条件在Perl中。 #!/usr/bin/perl use JSON; use XML::Simple; use File::Spec; $num_args = $#ARGV + 1; if ($num_args != 1) { print "\nUsage: $0 <input directory>\n"; exit; } my $dirPath = $ARGV[0]; if (not -e $dirPath) { $dirPath = "/opt/poll/"; } opendir(DIR, $dirPath); my @docs = grep(/\.xml$/,readdir(DIR)); foreach my $file (@docs) { my $abs_path = […]

通过文件扩展名validation脚本的参数?

我正在写一个脚本,你可以传入一个文件名作为参数,它只会运行,如果它是一个特定的文件扩展名。 flac2mp3 "01 Song.flac" 要么 flac2mp3 "01 Song.FLAC" 我知道那里有很多脚本,告诉你如何将FLAC转换为MP3,但这是我的脚本,我想学习如何使用这种方法编写脚本。 这是我可以学习的理由,当我想转换只有一个人的文件。 (对于多个文件,我只是写了一个for循环与* .flac脚本内) 我只想学习如何检查$ 1参数是否包含*。[Ff] [Ll] [Aa] [Cc] 这是我从互联网到目前为止拼凑起来的东西(我知道这是令人尴尬的错误,但是我想要展示我的目标): #!/bin/bash #flac2mp3 if [ -z $1 ] && [[$1 !=~ *.[Ff][Ll][Aa][Cc]]];then echo "Give FLAC File Name"; exit 0;fi OUTF=${1%.flac}.mp3 ARTIST=$(metaflac "$1" –show-tag=ARTIST | sed s/.*=//g) TITLE=$(metaflac "$1" –show-tag=TITLE | sed s/.*=//g) ALBUM=$(metaflac "$1" –show-tag=ALBUM | sed s/.*=//g) […]

在线指纹authentication

该公司有一个基于networking的打卡应用程序,但我的老板想让员工使用指纹而不是可共享的密码进出。 有没有可以使用的免费/开源/商业SDK? 使用基于Java或ActiveX的可embedded组件? 提前致谢。

批处理脚本/ PowerShell高级条件执行

我的问题是关于如何实现在Windows上执行批处理脚本/ PowerShell cmdlet,执行以下操作: 当浏览器窗口打开时,窗口/页面标题为“空白”,然后发送“标签”键,将login凭据发送到网页上的文本框,然后发送“input”键。 我发现这篇文章( 通过batch file在Windows 7 / Chrome上自动login网站 )关于在Web浏览器中发送login凭据,这与我想要做的非常相似,但是我希望脚本只能在浏览器已经打开,并在窗口标题中具有特定的值。 这是针对我服务器上运行的networking的authentication系统,要求我每30天重新login一次,并在需要login时自动打开浏览器窗口。 所以,当它打开窗口,我希望脚本能够自动login我。 由于服务器是无人值守(GUI智能),我想重新authentication自动发生。 我的计划是把这个集合作为一个计划任务,让它每晚运行,以validation系统是否仍然通过身份validation。 如果系统未通过身份validation,我希望batch file/ cmdlet能够为我login。 我做了一些研究,并find有关使用batch file的条件的信息,但是我找不到任何有关如何使用窗口标题或任何其他程序属性来基于我的条件的信息。 人们已经build议使用PowerShell,所以我完全开放,如果你有一个build议通过该路线的实施。 请让我知道如果您需要任何进一步的信息,或有任何问题。