我们正在使用客户端证书来validation我们的客户之一。 我们的设置是这样的:我们有一个Django应用程序前面的nginx。 在我们的nginxconfiguration中,我们有必要的参数来获得实际的客户端证书validation( ssl_client_certificate , ssl_verify_client等)和 uwsgi_param X-Client-Verify $ssl_client_verify; uwsgi_param X-Client-DN $ssl_client_s_dn; uwsgi_param X-SSL-Issuer $ssl_client_i_dn; 这意味着我们将这些variables的值传入我们的Django应用程序。 Django应用程序然后使用这些信息来确定哪个用户正在连接并授权他们。 我们已经成功地使用了几个月,没有任何问题,突然间我们开始收到关于人们无法使用证书login的报告。 事实certificate, $ssl_client_s_dn和$ssl_client_i_dn值的格式已经从斜线分隔的格式改变了: /C=SE/O=Some organziation/CN=Some CA 以逗号分隔的格式: CN=Some CA,O=Some organization,C=SE 解决这个问题很简单,但我不明白为什么。 所以我的问题是: $ssl_client_s_dn的值从哪里来? 它是由nginx设置的吗? 客户端? 有没有这个值的格式的文件/规范,它有一个名字?
我无法使用wget来使用客户端证书。 该文档讲述了使用–certificate标志。 证书标志的使用是明确的,我将其设置为使用客户端证书的PEM版本。 但是当我连接时,我得到以下错误: HTTP request sent, awaiting response… Read error (error:14094410:SSL routines: SSL3_READ_BYTES:sslv3 alert handshake failure; error:140940E5:SSL routines:SSL3_ READ_BYTES:ssl handshake failure) in headers. Giving up. ssl握手失败意味着客户端没有提供正确的客户端证书。 仍然是我使用的客户端证书,在浏览器中工作。 注意:当我禁用服务器上的客户端身份validation时,wget可以连接。 注意:build议使用curl,但我想避免切换。
我有一个开发网站,需要用户名和密码(基本httpauthentication),用户才能看到该网站。 我想首先redirect到一个安全的协议,在用户可以用明文发送密码之前。 任何想法如何使用Apache做到这一点? 我可以访问conf和.htaccess文件。 最终结果将是: http:// xxxx / – 当用户到这里时,他们立即被redirect到https: https – 当用户到达这里时,会提示input用户名/密码。
我试图设置我的本地Apacheconfiguration,如下所示: http://localhost/应该服务~/ http://development.somedomain.co.nz/应该服务~/sites/development.somedomain.co.nz/ https://development.assldomain.co.nz/应该服务~/sites/development.assldomain.co.nz/ 我只想要允许来自本地networking(192.168.1。*范围)和我自己(127.0.0.1)的连接。 我已经设置我的主机文件: 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost 127.0.0.1 development.somedomain.co.nz 127.0.0.1 development.assldomain.co.nz 127.0.0.1 development.anunuseddomain.co.nz 我的Apacheconfiguration如下所示: Listen 80 NameVirtualHost *:80 <VirtualHost development.somedomain.co.nz:80> ServerName development.somedomain.co.nz DocumentRoot "~/sites/development.somedomain.co.nz" DirectoryIndex index.php <Directory ~/sites/development.somedomain.co.nz> Options Indexes FollowSymLinks ExecCGI Includes AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost localhost:80> DocumentRoot "~/" ServerName localhost […]
我有一个后台进程,可以更新Tomcat用于其SSL凭据的密钥库。 我希望能够让Tomcat自动重新加载,而不需要手动重启。 有没有可能让Tomcat重新加载而不重新启动,或者是否有一个编程的方式,它可以完成?
我有一个奇怪的设置。 它看起来像这样: Browser ———-> HTTPs Proxy ——> Apache HTTP —–> Tomcat AJP HTTPS HTTP AJP 在HTTPS代理(非常愚蠢的代理)上,URL看起来像https://proxy.domain.com/app。 然后通过http传输到Apache,就像http://apache.domain.com/app(通过主机proxy.domain.com传递)一样。 然后,Apache使用AJP协议在本地将请求隧道到ajp:// localhost:8009 / app /。 有时应用程序服务器要redirect请求的path。 例如,redirect/ app / to / app / webapp。 所以,它发送一个302回到Apacheredirectpath – 可能是像ajp:// localhost:8009 / app / webapp。 然后,Apache将redirectURL重写为http://proxy.domain.com/app/webapp。 HTTPS代理是愚蠢的,所以它不分析redirect并将http更改为https。 所以,我想知道是否可以configurationApache来重写302redirectURL来将用户发送到https。 这里是我在Apache的https.conf中的configuration: ProxyPreserveHost on RewriteEngine on RewriteRule ^/app$ /app/ [PT] ProxyPass /app ajp://localhost:8009/app 我尝试使用ProxyPassReverse […]
我刚刚从Go Daddy购买了SSL证书。 我设置证书是: www.mydomainname.com(我改变了域名,你可以告诉。) 我设置了Apache,它正在工作。 所以当我inputhttps://www.mydomainname.com这一切工作。 然而: 当我键入http://www.mydomainname.com我从Apache得到这个错误: Bad Request Your browser sent a request that this server could not understand. Reason: You're speaking plain HTTP to an SSL-enabled server port. Instead use the HTTPS scheme to access this URL, please. 我希望能打字 http://www.mydomainname.com用于HTTP请求 和 https://www.mydomainname.com当我想要安全的请求。 我做错了什么? 这是我的Apacheconfiguration: 在网站启用(我正在使用Ubuntu的Apache设置) 我有文件称为ssl <IfModule mod_ssl.c>; SSLEngine On SSLCertificateFile /etc/apache2/ssl/www.mydomainname.com.crt […]
我正在启动我自己的社交网站,并需要用户login部分的SSL。 为了获得SSL,他们需要CSR密钥,这需要一个组织的名称,这个名字应该是合法的在你的州注册。 我没有公司,除非我的项目开始,我没有计划打开一个,我看到未来的发展,所以如果我用我的网站名称作为组织名称(除了网站没有离线存在),我会得到陷入麻烦? 当然在同一时间我不想在SSL上使用我的名字,但想使用公司名称。
我正在configuration一个Nginx服务器,以便作为一个反向代理服务一个Django应用程序(在Gunicorn上运行)。 我的问题是,我希望我的网站使用HTTPS进行保护,所以我希望我的Django应用程序能够确定连接是否安全。 我正在使用Django 1.4,所以我有权访问SECURE_PROXY_SSL_HEADER ,我将其configuration为SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https') 。 现在,正如文档中提到的那样,我需要确保Nginx只在需要的时候添加头部,并在不需要的时候去掉头部。 因为我希望我的Nginxconfiguration尽可能干,我宁愿没有两个configuration文件(一个用于端口80和一个用于端口443)。 因此,我想知道Nginx是否有办法确定连接是否为https,并相应地添加(或剥离)标题。
我想强制执行HSTS只有1个子域,但不是整个域,这是可能的吗? xxx.yyy.com -> HSTS on zzz.yyy.com -> HSTS off yyy.com -> HSTS off