小编lin*_*kdd的帖子

在 SSL 身份验证失败时重定向用户

我配置了一个启用 SSL 和 SSL 客户端身份验证的 VirtualHost,所有这些都在 apache2 2.2.8(ubuntu 服务器 8.04)上。

所有 SSL 证书(CA、服务器证书、客户端证书、CRL)都是使用 openssl 命令行生成的。

如果客户端证书无效(不存在、过期或吊销),我想将用户重定向到自定义错误页面。

这是我的虚拟主机的配置:

<VirtualHost *:443>
    ServerName myserv.example.com
    DocumentRoot /var/www/myserv/

    CustomLog /var/log/apache2/myserv.access.log combined
    ErrorLog /var/log/apache2/myserv.error.log
    LogLevel warn

    SSLEngine on
    SSLOptions +StdEnvVars +ExportCertData

    SSLCertificateFile "/etc/apache2/ssl/certs/servcrt.pem"
    SSLCertificateKeyFile "/etc/apache2/ssl/private/servkey.pem"

    SSLCACertificateFile "/etc/apache2/ssl/certs/ca.pem"

    SSLCARevocationPath "/etc/apache2/ssl/crl/"
    SSLCARevocationFile "/etc/apache2/ssl/crl/crl.pem"

    <Directory /var/www/myserv/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all

        SSLVerifyClient optional
        SSLVerifyDepth 1

        RewriteEngine on
        RewriteCond %{SSL:SSL_CLIENT_VERIFY} !^SUCCESS$
        RewriteRule .* /error-page.html [L]
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

使用该配置,如果用户没有任何 SSL 证书,他将被正确重定向到错误页面。但是如果他有一个被撤销或过期的证书,握手失败(正常)并且连接被关闭(在浏览器上返回一个 SSL 错误)。

如何告诉 apache2 …

ssl authentication apache-2.2

5
推荐指数
1
解决办法
2335
查看次数

标签 统计

apache-2.2 ×1

authentication ×1

ssl ×1