我已经在公司中设置了虚拟主机作为Web API,并且由于用例的原因,我们配置了Django应用,该应用在URL路径中进行基本身份验证。需要使用cert auth,因此在apache方面,我们在另一个URL上配置了客户端cert验证,但似乎无法正常工作,apache允许所有访问该URL位置的流量,请求标头保持不变,就好像没有auth请求服务器。
conf文件是这样的:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
WSGIPassAuthorization on
WSGIScriptAlias / /srv/www/site/site/wsgi.py
Alias /favicon.ico /srv/www/site/static/img/favicon.ico
Alias /static/ /srv/www/site/static/
Header set Access-Control-Allow-Origin http://127.0.0.1:9000
SSLVerifyClient none
SSLCACertificateFile ssl.crt/ClientCheck_CA.crt
DocumentRoot /srv/www/site
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /srv/www/site>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
<Location /api-certauth/>
SSLVerifyClient require
SSLVerifyDepth 3
SSLOptions +ExportCertData
</Location>
<Directory /srv/www/site/static>
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
基本上,当我请求http://server-name.com/api-certauth时,没有像服务器中的任何其他URL一样向我的浏览器请求身份验证
解决了我的问题,将端口80更改为443
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句