GVKun编程网logo

只有在Flask用户通过身份validation的情况下,Nginx才能使用https服务器吗?

27

最近很多小伙伴都在问只有在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服务器吗?

只有在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通过虚拟主机的基本身份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

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

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

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的相关知识,请在本站进行查询。

本文标签: