![jboss 前面的 httpd,以及 ejbca 证书生成](https://linux22.com/image/798167/jboss%20%E5%89%8D%E9%9D%A2%E7%9A%84%20httpd%EF%BC%8C%E4%BB%A5%E5%8F%8A%20ejbca%20%E8%AF%81%E4%B9%A6%E7%94%9F%E6%88%90.png)
我正在尝试在 jboss 服务器前面设置 httpd,并使用 x.509 证书进行客户端身份验证。我已关注本教程使用 openssl 创建我自己的 CA、服务器和客户端证书,并且成功了。现在我尝试使用 ejbca 工具而不是 openssl 生成证书,但失败了。我生成的证书配置不正确,因为当我尝试使用它们时,我收到 apache 和 jboss 之间的 ssl 握手错误,并且在 apache 日志中我可以看到
[Mon Jan 07 14:51:28 2013] [debug] ssl_engine_kernel.c(1874): OpenSSL: Loop: SSLv3 read server hello A
[Mon Jan 07 14:51:28 2013] [debug] ssl_engine_kernel.c(1321): [client 10.55.160.194] Certificate Verification: depth: 2, subject: /CN=DEXXISCA/O=DEXXIS/C=FR, issuer: /CN=DEXXISCA/O=DEXXIS/C=FR
[Mon Jan 07 14:51:28 2013] [debug] ssl_engine_kernel.c(1321): [client 10.55.160.194] Certificate Verification: depth: 1, subject: /CN=DEXXIS-RND-CA/O=DEXXIS/C=FR, issuer: /CN=DEXXISCA/O=DEXXIS/C=FR
[Mon Jan 07 14:51:28 2013] [debug] ssl_engine_kernel.c(1321): [client 10.55.160.194] Certificate Verification: depth: 0, subject: /CN=centralbase/O=DEXXIS/C=FR, issuer: /CN=DEXXIS-RND-CA/O=DEXXIS/C=FR
[Mon Jan 07 14:51:28 2013] [debug] ssl_engine_kernel.c(1874): OpenSSL: Loop: SSLv3 read server certificate A
[Mon Jan 07 14:51:28 2013] [debug] ssl_engine_kernel.c(1874): OpenSSL: Loop: SSLv3 read server key exchange A
[Mon Jan 07 14:51:28 2013] [debug] ssl_engine_kernel.c(1874): OpenSSL: Loop: SSLv3 read server certificate request A
[Mon Jan 07 14:51:28 2013] [debug] ssl_engine_kernel.c(1874): OpenSSL: Loop: SSLv3 read server done A
[Mon Jan 07 14:51:28 2013] [debug] ssl_engine_kernel.c(1660): Proxy client certificate callback: (centralbase:443) entered
[Mon Jan 07 14:51:28 2013] [debug] ssl_engine_kernel.c(1705): Proxy client certificate callback: (centralbase:443) no client certificate found!?
有人知道我需要在 ejbca 中配置什么才能获得允许我在 apache 和 jboss 之间建立 ssl 的证书吗(我正在使用 mod_proxy_http)?
答案1
好的,我解决了这个问题。看来 ejbca 生成的 jks 文件没有包含所有 CA 证书(只有根 CA)——这就是为什么使用 subCA 时它不起作用的原因。修复服务器 jks 文件后,一切正常。