首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为subdomain.domain.com配置客户端授权?

如何为subdomain.domain.com配置客户端授权?
EN

Stack Overflow用户
提问于 2016-12-17 17:14:09
回答 1查看 434关注 0票数 1

我为特定的子文件夹生成了具有客户端身份验证的wamp服务器:

现在,我想通过使用https://www.domain.com/subdomain/app1来访问我的站点而不是https://app1.domain.com

当我试图访问url时,我确实会被要求选择客户端证书,但是当我选择匹配的证书时,错误403将被禁止。

当我使用OpenSSL生成我的证书时,我使用*.domain.com作为服务器密钥的CN。

以下是httpd-ssl.conf中的虚拟主机定义:

代码语言:javascript
复制
<VirtualHost *:443>
ServerName www.domain.com:443
DocumentRoot "c:/wamp/www"
ServerAdmin admin@domain.com

ErrorLog "C:/wamp/bin/apache/apache2.4.9/logs/ssl_error.log"
TransferLog "C:/wamp/bin/apache/apache2.4.9/logs/ssl_access.log"

SSLEngine on
SSLVerifyClient require
SSLVerifyDepth 10

SSLCertificateFile "C:\wamp\bin\apache\apache2.4.9\conf\cert\server.cer"
SSLCertificateKeyFile "C:\wamp\bin\apache\apache2.4.9\conf\cert\server.key"
SSLCACertificateFile "C:\wamp\bin\apache\apache2.4.9\conf\cert\ca.cer"

<LocationMatch ^(?=.*/subomain/app1/)(?!.*/subdomain/app1/service).*>
    SSLRequire %{SSL_CLIENT_S_DN_CN} eq "App1Key"
</LocationMatch>    

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0

CustomLog "c:/wamp/bin/apache/apache2.4.9/logs/ssl_request.log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

此外,我还创建了这个vhosts.conf以允许subdomain.domain.com

代码语言:javascript
复制
<VirtualHost *:80>
    ServerName www.domain.com
    ServerAlias *.domain.com
    VirtualDocumentRoot "C:\wamp\www\demo\%1"
    ErrorLog "logs\errors.log"
    <directory "C:\wamp\www\demo\%1">
        Options  FollowSymLinks
        AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from all
    </directory>
</VirtualHost>

更新

我已经根据答案向ssl.conf添加了以下代码,但是现在客户端证书总是有效的,它忽略了LocationMatch的条件

代码语言:javascript
复制
<directory "C:\wamp\www\demo\%1">
        Options  FollowSymLinks
        AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from all
    </directory>

让我说,我想拥有与subdomain.domain.com等价的条件

代码语言:javascript
复制
<LocationMatch ^(?=.*/subomain/app1//)(?!.*/subomain/app1//service).*>
        #SSLOptions +StdEnvVars +ExportCertData
        SSLRequire %{SSL_CLIENT_S_DN_CN} eq "Shob"
    </LocationMatch>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-17 20:43:33

禁止使用403的不是您的SSL设置。

<VirtualHost>块的末尾添加以下内容(尽管放在</VirtualHost>之前只是一个首选项),以授予访问虚拟主机的DocumentRoot文件夹的权限:

代码语言:javascript
复制
<Directory "c:/wamp/www">
    Order allow, deny
    Allow from all
</Directory>

或者如果您正在使用Apache 2.4或更高版本:

代码语言:javascript
复制
<Directory "c:/wamp/www">
    Require all granted
</Directory>

您还应该检查之前的<Directory>块中是否还有其他内容,并将其也带进来。例如,您可能需要AllowOverride或设置一些Options,但上面的内容将解决您想要解决的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41201066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档