最近很多小伙伴都在问只有在Flask用户通过身份validation的情况下,Nginx才能使用https服务器吗?这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展.htacces
最近很多小伙伴都在问只有在Flask用户通过身份validation的情况下,Nginx才能使用https服务器吗?这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展.htaccess通过虚拟主机的基本身份validation?、Apache HTTP客户端javax.net.ssl.SSLPeerUnverifiedException:对端未通过身份validation、configuration基本身份validation后,Nginx会提供一个内部服务器错误500、Elastic Beanstalk上的Nginx服务器的基本身份validation等相关知识,下面开始了哦!
本文目录一览:- 只有在Flask用户通过身份validation的情况下,Nginx才能使用https服务器吗?
- .htaccess通过虚拟主机的基本身份validation?
- Apache HTTP客户端javax.net.ssl.SSLPeerUnverifiedException:对端未通过身份validation
- configuration基本身份validation后,Nginx会提供一个内部服务器错误500
- Elastic Beanstalk上的Nginx服务器的基本身份validation
只有在Flask用户通过身份validation的情况下,Nginx才能使用https服务器吗?
我在一个Nginx服务器后面运行我的Flask项目。 我已经为https设置了证书。 有没有办法只有Flasklogin用户才能获得HTTPS,而匿名用户得到HTTP?
如何在uWsgi中正确加载Flask应用程序模块?
如何在ubuntu服务器上使用Supervisor / Nginx / Gunicorn部署Flask应用程序
Python:Nginx + FLASK的uWsgiconfiguration
Flask + uwsgi + Nginx + debug。 502错误,而不是debugging页面
Dockerizing Nginx和Flask
.htaccess通过虚拟主机的基本身份validation?
我想知道是否可以根据.htaccess文件中的虚拟主机URL设置条件http基本authentication要求。
例如,我想要做的是让mysite.com和test.mysite.com在相同的目录中运行相同的代码库,但密码保护test.mysite.com。 这将设置这种方式,以便我不需要分支我的代码,因为我的应用程序代码可以看到它提供的哪个虚拟主机/ url,并select数据库来提供内容。
Apache .htaccess URL重写
htaccess使用参数redirecturl
符号链接和索引文件无法正常工作的.htaccessconfiguration
find服务器上的所有htaccess文件
我怎么能redirect到一个目录中的所有文件到另一个目录?
你可以使用mod_setenvif和mod_auth模块来排序。 使用SetEnvIfNoCase指令设置哪个主机受密码保护。 您需要一些额外的指令来满足访问:
# Check for the hostname here SetEnvIfNoCase HOST ^test.mysite.com.?(:80)?$ PROTECTED_HOST
然后在Directory块(或刚刚打开),你有你的身份验证的东西安装,如下所示:
AuthUserFile /var/www/test.mysite.com/htpasswd AuthType Basic AuthName "Password Protected"
现在的要求/满足的东西:
Order Deny,Allow Satisfy any Deny from all Require valid-user Allow from env=!PROTECTED_HOST
这将使得任何不匹配^test.mysite.com.?(:80)?$主机都可以访问,而不需要auth( Allow from env=!PROTECTED_HOST ),否则我们需要一个有效用户( Require valid-user )。 Satisfy any确保我们只需要其中的一个,无论是允许还是要求。
我在执行Jon的解决方案时遇到问题:虽然我对Apache conf和正则表达式非常熟悉,但是身份验证总是被触发。 从一个快速的分析看来,就像是Allow from env=!PROTECTED_HOST行的Allow from env=!PROTECTED_HOST没有启动。
但是我发现了另一个对我来说更安全的解决方案:
我为两个域指定了相同的文档根目录(这是完全允许的)创建了两个虚拟主机。 在其中一个虚拟主机中,我添加了基本身份验证指令(直接进入vhost指令块)。
奇迹般有效。 我有一个更好的感觉,这是非常安全的 – 没有任何风险忽略任何细节的正则表达式将打开入侵者的大门。
<VirtualHost *:80> serverName www.mysite.com DocumentRoot "/path/to/common/doc/root" <Directory "/path/to/common/doc/root"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost *:80> serverName protected.mysite.com DocumentRoot "/path/to/common/doc/root" <Directory "/path/to/common/doc/root"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all AuthUserFile /path/to/htpasswd AuthName "Password please" AuthType Basic Require valid-user </Directory> </VirtualHost>
这里有一个类似于Jon Lin提出的解决方案,但是使用RewriteCond来检查主机名:
RewriteEngine On RewriteCond %{HTTP_HOST} =protected.hostname.com RewriteRule ^.*$ - [E=DENY:1] AuthUserFile /path/to/htpasswd AuthName "Password please" AuthType Basic Order Deny,Allow Satisfy any Deny from all Require valid-user Allow from env=!DENY
总结
以上是小编为你收集整理的.htaccess通过虚拟主机的基本身份validation?全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
Apache HTTP客户端javax.net.ssl.SSLPeerUnverifiedException:对端未通过身份validation
我们正在开发一个使用tomcat和jersey的应用程序。
在这个networking应用程序中,我们需要连接到一个valid ,没有过期的certificate的https Website 。 如果我通过我的Chrome浏览器在本地连接到本网站,一切正常! 不幸的是,我们的webapp的tomcat服务器抛出一个exception。 我们使用Apache HttpClient (4.0)连接到https站点:
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:371) at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:126) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572) at org.apache.http.impl.conn.DefaultClientConnectionoperator.openConnection(DefaultClientConnectionoperator.java:180) at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:645) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
服务器证书是绝对有效的,从thawte 。 三种不同的在线工具成功validation了证书。
Openssl也有一个问题,并向我展示了三个证书,但抛出了一个简单的错误:
Verify return code: 20 (unable to get local issuer certificate)
openssl的问题似乎是它使用错误的path/usr/lib/ssl而不是/etc/ssl/certs 。 如果我使用指向正确path的CApath参数,openssl工作正常,所以这可能是httpClient的问题?
所以我们的默认客户端代码非常简单:
使用ajp进行Spring Boot应用程序的Apache后面的Tomcat
无法find或加载主类org.apache.hadoop.util.VersionInfo
如何使用.htaccess服务gziped字体? (没有mod gzip或deflate)
我怎样才能看到有多less个MysqL连接打开?
Rails 3.1,Unicorn和Apache:静态文件
client = new DefaultHttpClient(); response = client.execute(url); //this throws the exception EntityUtils.consume(response.getEntity());
通过实现自定义的TrustedManager来允许任何证书不是一个选项! 还有,我读过,有些CA不是JDK / JRE的一部分,所以它的证书应该手动导入keystore或者使用自定义的证书,但是thawte是一个众所周知的CA,不应该在默认情况下工作?
编辑
我确实在catalina.sh中设置了javax.debug属性,这样我就可以得到关于这个问题的更多信息:
http-bio-8080-exec-1,handling exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation Failed: java.security.cert.CertPathValidatorException: basic constraints check Failed: pathLenConstraint violated - this cert must be the last cert in the certification path
我将不胜感激任何帮助! 提前致谢!
http:// localhost / PHPpgadmin / – > 403禁止
构build“大型”Rails应用程序的最佳实践
我们如何在同一台机器的Windows 7上运行Apache Http Server的两个实例
Django WGSIpath
.htaccess通过虚拟主机的基本身份validation?
好吧,我得到它的工作! 虽然thawte是一个众所周知的CA,但似乎Java SSL确实有一些问题。 通过openssl下载ssl证书后:
echo | openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 | sed -ne ''/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p''
并将其保存到pem文件中,我手动导入到java密钥库中:
keytool -import -alias myAlias -file theCert.pem -keystore lib/security/cacerts
我不知道为什么Java SSL不能正确地验证thawte证书。
列出keystore显示我在标准密钥库中有7个thawte受信任的证书,但奇怪的是它没有工作,直到我手动导入pem文件
我想了解你的设置。 你有一个SSL证书(由Thwate发行),安装在tomcat中,你可以使用IE或者Firefox或者Chrome来访问你的站点。
但是当您尝试使用HttpClient访问它时,您会收到上述错误?
那是对的吗 ?
错误清楚地表明您的客户不信任CA. 但是,如果证书由Thwate签名(并且安装正确并且可以通过IE / Firefox等访问),那么它应该可以正常工作。
总结
以上是小编为你收集整理的Apache HTTP客户端javax.net.ssl.SSLPeerUnverifiedException:对端未通过身份validation全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
configuration基本身份validation后,Nginx会提供一个内部服务器错误500
我正在尝试对Nginx进行基本authentication。 我已经在Ubuntu 14.04上运行了1.9.3版本,并且使用简单的html文件工作正常。
这里是html文件:
<!DOCTYPE html> <html lang="en"> <head> <Meta charset="UTF-8"> <title></title> </head> <body> "Some shoddy text" </body> </html>
这里是我的Nginx.conf文件:
user Nginx; worker_processes 1; error_log /var/log/Nginx/error.log warn; pid /var/run/Nginx.pid; events { worker_connections 1024; } http { include /etc/Nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/Nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/Nginx/conf.d/*.conf; server { listen 80; server_name 192.168.1.30; location / { root /www; index index.html; auth_basic "Restricted"; auth_basic_user_file /etc/users; } } }
我使用htpasswd在/ etc(用户名“calvin”,密码“Calvin”,用户名“hobbes”,密码“Hobbes”)下的“users”文件中创build两个用户。 它是这样encryption的:
更改Nginx的乘客默认错误页面
将rails 3.1应用程序部署到Amazon Ec2
Sidekiq用户界面不加载资产 – 404没有find
Rails / Unicorn错误:无法从“config / secrets.yml”中读取secret_key_base和secret_token
Nginx,ssl,CORS,以及Access-Control-Allow-Origin值跨站点的caching
calvin:$apr1$Q8LGMfGw$RbO.cG4R1riIfERU/175q0 hobbes:$apr1$M9KoUUhh$ayGd8bqqlN989ghWdTP4r/
所有文件都属于root:root。 服务器IP地址是192.168.1.30,我直接在conf文件中引用它。
这一切工作正常,如果我注释掉两个身份validation行并重新启动Nginx,但如果我取消注释他们,然后我确实得到用户名和密码提示,当我尝试加载该网站,但立即之后得到一个错误500内部服务器错误这似乎坚持,我不得不重新启动Nginx。
任何人都可以看到我在这里做错了什么? 我在标准的Ubuntu 14.04 apt-get版本的Nginx(1.4.something)上有相同的行为,所以我不认为这是Nginx版本。
Windows .crl为.pem为Nginx
Nginx Grok模式 – 处理反斜杠或括号?
uWsgi python高负载configuration
Nginx“的”try_files“指令中的参数的无效数目…”
Nginx作为Nexus的反向代理服务器 – 无法在Docker环境中连接
当您使用MD5时,不是真正的答案。 然而,当这个线程在搜索错误时弹出,我将它附加到它。
使用bcrypt为auth_basic生成密码时会发生类似的错误:
htpasswd -B <file> <user> <pass>
由于auth_basic ATM中不支持bcrypt ,所以在Nginx error.log(通常位于/var/log/Nginx/error.log )中可以找到神秘的500错误,它们看起来像这样:
*1 crypt_r() Failed (22: Invalid argument),...
目前的解决方案是使用md5生成一个新的密码,这是默认的。
编辑来解决由@EricWolf在评论中提出的md5问题:
md5肯定有问题,有些上下文可以在下面的线程中找到
MD5被认为是不安全的?
对于单次使用认证,md5仍然被认为是安全的吗?
在这两个,速度问题可以通过使用fail2ban来缓解,通过禁止失败的基本身份验证,你会使网上暴力强制不切实际( 指导 )。 您也可以使用长密码来尝试和强化一点,如这里所建议的。
除此之外,看起来这个和Nginx一样好…
最初创建用户时,我已经疯狂了。 结果,htpasswd文件如下所示:
user: user:$apr1$passwdhashpasswdhashpasswdhash...
删除空白用户后,一切正常。
我将自己将htpassword文件粘贴在“/ etc / Nginx”下。 假设它被命名为htcontrol ,那么…
sudo htpasswd -c /etc/Nginx/htcontrol calvin
按照提示输入密码,文件将在正确的位置。
location / { ... auth_basic "Restricted"; auth_basic_user_file htcontrol; }
或者auth_basic_user_file /etc/Nginx/htcontrol; 但是第一个变体适合我
我只是遇到了同样的问题 – 在按照@Drazen Urch的建议检查日志之后,我发现这个文件具有root:root权限root:root权限 – 在更改为forge:forge (我正在使用数字海洋伪造)之后,问题就消失了。
Elastic Beanstalk上的Nginx服务器的基本身份validation
我正在尝试在运行nodejs的弹性beanstalk实例上设置基本身份validation,但是,我似乎无法得到这个工作。 我已经在Amazon EC2上遵循了本指南Nginx服务器 ,但是httpstream量仍然通过Nginx实例。 我想这是因为ec2实例上的Nginx服务器不是我需要修改virtual.conf文件的那个服务器。 我认为Nginx服务器是完全在另一个实例,但我似乎无法find它。 我认为这是因为当我ping我的网站的域名时,它的IP是Nginx服务器,而不是我的弹性IP。 任何想法如何configurationNginx的限制HTTP和HTTPS到我的网站Elastic beanstalk?
使用AWS弹性Beanstalk上的Nginx和PHP-fpmreplaceApache / PHP
如何在Elastic Beanstalk启动时守护Rails Rake任务
Windows上的Beanstalk:如何防止重新部署时运行的命令?
如何在运行docker实例的amazon elastic beanstalk中更改Nginxconfiguration
AWS aws.push ImportError:Ubuntu中没有名为boto的模块
虽然这不是对你的问题的直接回答,但是为AWS的HTTP基本认证寻找资源却遇到了很多麻烦。
我结束了从Nginx切换到Apache,并在PROJECT_ROOT / .ebextensions / apache.conf中使用此配置:
files: "/etc/httpd/conf.d/allow_override.conf": mode: "000644" owner: ec2-user group: ec2-user encoding: plain content: | <Directory /var/app/current/> AllowOverride AuthConfig </Directory> "/etc/httpd/conf.d/auth.conf": mode: "000644" owner: ec2-user group: ec2-user encoding: plain content: | <Directory /var/app/current/> AuthType Basic AuthName "Myproject Prototype" AuthUserFile /etc/httpd/.htpasswd Require valid-user </Directory> "/etc/httpd/.htpasswd": mode: "000644" owner: ec2-user group: ec2-user encoding: plain content: | myusername:mypassword-generated-by-htpasswd
请注意,这是不理想的,因为你最终在回购的源代码中有密码保护…但是,我找不到更好的方式记录在任何地方。 我正在探索将HTTP Auth烘焙到ec2实例中,将实例保存为AMI,并将该AMI用于在我的beanstalk中自动生成的实例。
甚至不要让我开始在s3桶之前进行HTTP认证,而AWS不支持这个认证,并要求您将DNS指向第三方服务!
总结
以上是小编为你收集整理的Elastic Beanstalk上的Nginx服务器的基本身份validation全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
今天的关于只有在Flask用户通过身份validation的情况下,Nginx才能使用https服务器吗?的分享已经结束,谢谢您的关注,如果想了解更多关于.htaccess通过虚拟主机的基本身份validation?、Apache HTTP客户端javax.net.ssl.SSLPeerUnverifiedException:对端未通过身份validation、configuration基本身份validation后,Nginx会提供一个内部服务器错误500、Elastic Beanstalk上的Nginx服务器的基本身份validation的相关知识,请在本站进行查询。
本文标签: