我有一个用PHP编写的应用程序,可以使用PHP-FPM和Apache堆栈进行访问。
我希望仅对于提供有效且受信任的SSL证书的客户端请求才能访问此应用程序的单个端点(例如POST /create
,它是SOAP服务)。 “受信任”的意思是指向单个(或多个)证书,而不仅仅是“有效的证书,因为它是有效的CA”。
我已经尝试了多种方法来解决它,但我故意不在此处介绍它们,以便不提出任何建议,这在设计上可能是错误的。
Internet正在使我不知所措,这充满了关于如何生成SSL证书或如何使客户端使用SSL证书进行身份验证的教程,而这次并非如此。
有什么好人会帮助我吗?
答案 0 :(得分:0)
我谈到了可以打电话给解决方案的地方,所以我将其发布在这里。
成功涉及以下因素:
select (@rn := @rn + 1) as seqnum, s_id, group_concat(p_id order by time) as p_ids
from t cross join
(select @rn := 0) params
group by s_id;
-令人惊讶地评论到(Debian Jessie)。对于最终的身份验证条件,我使用了SSLCACertificatePath /etc/ssl/certs
:
.htaccess
如您所见,已对某些证书进行了验证 使用它的序列号(我仍然不确定这是否是最好的 唯一证书的验证方法)。
这些步骤使<IfModule mod_ssl.c>
<If "%{REQUEST_URI} == '/create' && %{REQUEST_METHOD} == 'POST'">
SSLVerifyClient require
Require expr %{SSL_CLIENT_M_SERIAL} eq '1234567890ABCDEF123456789ABCDEF1'
SSLVerifyDepth 2
</If>
</IfModule>
请求可以工作,但是在某些环境中 SoapUI仍然无法授权,我不知道为什么。
但是在这一点上,我认为问题已在很大程度上得到解决。