apache - Apache 2.4 需要客户端 SSL 证书或白名单 IP
问题描述
我正在尝试构建一个需要 SSL 客户端验证或允许访问白名单上的条目的网站。
我有以下
ssl.conf
<VirtualHost *:443>
DocumentRoot /var/www/html
ServerName www.example.com
SSLEngine on
SSLCertificateFile /etc/pki/example.com.crt
SSLCertifiacteKeyFile /etc/pki/example.com.key
SSLVerifyClient optional
<Files ~ "\.(cgi|html|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/html">
DirectoryIndex index.php
</Directory>
ProxyPassMatch ^/(.*\.php(/.*)?$ fcgi://php:9000/var/www/html/$1
</VirtualHost>
welcome.conf
<LocationMatch "^/.*$">
Options -Indexes
ErrorDocument 403 /noindex.html
</LocationMatch>
<Directory /var/www/noindex>
AllowOverride None
Require all granted
</Directory>
Alias /noindex.html /var/www/noindex/index.html
whitelist.conf
<Directory /var/www/html>
ErrorDocument 403 "Access is restricted"
<RequireAny>
Require ssl-verify-client
<RequireAny>
Require ip .....
Require ip ....
....
</RequireAny>
</RequireAny>
</Directory>
http.conf
Include ./ssl.conf
Include ./welcome.conf
Include ./whitelist.conf
如果我尝试在https://www.example.com/
没有正确证书或白名单 IP 的情况下访问,我将被重定向到 /noindex.hml 页面。但是,如果我尝试https://www.example.com/login.php
页面加载但没有任何图像。如何阻止未经验证的客户端直接访问页面?
解决方案
推荐阅读
- python - 无法从其 docker 容器的我们一侧连接到 kafka
- javascript - 修改对象值成为键
- javascript - Shopify 在 for 循环中的 X 块后加载更多按钮
- javascript - 来自具有特定字符序列的图像的 ANSI 艺术
- spring - 在 Spring Boot 中将自定义变量名称添加到访问日志文件
- rust - if-else 语句如何影响 Rust 中函数的返回值?
- google-cloud-platform - 404 错误 GCP API 网关多个云运行后端
- reactjs - React按钮onClick呈现三种颜色,如何制作那个按钮?
- node.js - 如何使用 ExpressJS 将用户路由到单独的独立反应应用程序?
- android - Android - 加载时屏幕自动滚动到 RecyclerView