我有一个自定义的 easyrsa 设置,带有一个根和三个由根签名的 CA。(三个不同的子 cas 取决于用户类型),如下所示:
RootCA
+----- AdminUserCA
+----- EmployeeCA
+----- ClientCA
Run Code Online (Sandbox Code Playgroud)
我使用以下配置进行身份验证:
server {
listen 127.0.0.1:443;
server_name www.acme.corp;
ssl on;
ssl_certificate /data/src/easy-rsa/bundles/www.acme.corp_bundle.crt;
ssl_certificate_key /data/src/easy-rsa/whfWebCA/pki/private/www.acme.corp.key;
add_header Strict-Transport-Security "max-age=315360000; includeSubdomains";
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA;
ssl_prefer_server_ciphers on;
ssl_verify_client optional;
ssl_client_certificate /data/src/easy-rsa/bundles/client_auth_ca_chain.crt;
ssl_verify_depth 2;
ssl_crl /data/src/easy-rsa/bundles/crls/all.pem;
...
}
Run Code Online (Sandbox Code Playgroud)
问题在于 CRL 检查。CRL 由颁发 CA 签名,因此它们不能像中间证书 + 根证书一样附加在一起。
因此,用户的证书将由给定的中间 CA 根据其用户类型颁发。问题是我真的需要检查四个 CRL 列表才能有效。nginxssl_crl只支持单个文件。
所以我的问题是:是否可以让 nginx 在此设置中正确检查客户端证书吊销,而无需在我的应用程序中进行检查?
| 归档时间: |
|
| 查看次数: |
8964 次 |
| 最近记录: |