我的Debian Linux上有Apache 2.2运行的Web服务器。 我在Apache中有一个根和中间CA. 中级CA创build了我的Web服务器证书以及客户端证书。 当我的RADIUS服务器提示我input凭据时,我想使用客户端证书的CN作为用户名。 我正在查看Apache的网站,看起来有一些有用的function(如AuthBasicFake),但是这些function仅在Apache 2.4中可用。 有没有人知道这个问题的解决办法?
由于我的Debian版本是Wheezy(7),所以我不得不使用apache 2.2并使用巧妙的解决方法。 这是我的Apacheconfiguration(省略了几行代码):
AddRadiusAuth ~~~~~~~~~~~~~~:1812 ~~~~~~~~~ 5:3 AddRadiusCookieValid 60 SSLEngine On SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 SSLHonorCipherOrder On SSLOptions +FakeBasicAuth SSLCertificateFile ~~~~~~~~~~~~~~~~~~~~~~ SSLCertificateKeyFile ~~~~~~~~~~~~~~~~~~~~~~ SSLCACertificateFile ~~~~~~~~~~~~~~~~~~~~~~ SSLCACertificatePath ~~~~~~~~~~~~~~~~~~~~~~ <Directory /var/www/> SSLVerifyClient require SSLVerifyDepth 10 SSLOptions +StdEnvVars Options Indexes FollowSymLinks MultiViews DirectoryIndex /cgi-bin/index.html AllowOverride None Order allow,deny Allow from all AddHandler mod_python .py PythonHandler mod_python.publisher PythonDebug On AuthType Basic AuthName "RADIUS authentication for localhost" AuthBasicAuthoritative off AuthRadiusAuthoritative on AuthBasicProvider radius AuthRadiusActive On Require valid-user </Directory>
SSLOptions +FakeBasicAuth取得我证书中的所有内容,并将其用作用户名,密码为“password”。 我configuration了RADIUS来检查用户名和密码。 所以我做的是我创build了客户端证书,只包含CN,'ExampleName'。 我将客户端证书加载到浏览器中,并在每次使用时都启用密码保护。 Apache读取“ExampleName”为“/ CN = ExampleName”并将其传递给RADIUS。 然而,由于某种原因(我猜转义字符与此有关),RADIUS读取'/ CN = ExampleName'为'/ CN = 3DExampleName'。 所以当我configuration用户名和密码时,它必须是:'/ CN = 3DExampleName'和'密码'。
当我去我的网站,我select证书,input我的密码(不是'密码',我select的时候我的密码保护它)。 然后RADIUS要求input用户名和密码。 我什么都没input,点击确定,它就可以工作。 我猜FakeBasicAuth(Apache)将用户名'/ CN = ExampleName'(变成'/ CN = 3DExampleName')和密码'password'传递给RADIUS。
对不起,长期的回应(对我自己的问题)。 有时候我会卡住,也许这会帮助未来的人。 另外如果任何人有一个更好的工作,而不更新我的Debian Jessie(8)或Apache 2.4,请让我知道。