是否有任何方法为多域创建自签名的 SSL证书?我的环境是jboss-5.1.0.GA。
我已经使用以下java keytool命令为单个域创建了一个自签名SSL证书。
keytool -genkey -alias jbosskey -keypass changeit -keyalg RSA -keystore server.keystore
*Answer the prompts. Use myHostname when asked for first/last name
keytool -export -alias jbosskey -keypass changeit -file server.crt -keystore server.keystore
keytool -import -alias jbosscert -keypass changeit -file server.crt -keystore server.keystore然后,在JBOSS server.xml中启用SSL,如下所示;
<Connector protocol="HTTP/1.1" SSLEnabled="true"
port="7443" address="${jboss.bind.address}"
scheme="https" secure="true" clientAuth="false"
keystoreFile="${jboss.server.home.dir}/conf/server.keystore"
keystorePass="changeit" sslProtocol = "TLS" />这很好用。现在,我需要在这个证书中添加另一个单独的域名。
请注意,这不是通配符证书,我指的是哪个支持子域。
我需要做的是,添加完全独立的域名到单个密钥存储文件。
P.S.
我正在开发apache + JBOSS环境。apache服务器充当代理。
我可以在Apachehttpd-ssl.conf配置中为不同的域提供单独的SSL证书文件。但当我来找JBOSS的时候,我不知道该怎么处理。
如果我们使用apache作为代理(这意味着在apache中配置ssl ),我们可以忽略来自JBOSS的SSL吗?
我试图忽略条目(keystoreFile="${jboss.server.home.dir}/conf/server.keystore"),但这会产生一个错误。
如果没有,是否有任何方法可以在没有支持多个域的SSL证书的情况下处理这种情况?
谢谢
发布于 2013-01-25 10:14:53
如果我正确理解了这一点,您可能可以让Apache服务器处理SSL身份验证,如果代理预先处理它,Jboss可以忽略SSL证书( JBoss的设计是允许部署中的SSL证书的控制/ auth,在本例中这听起来是不必要的)
我有一个类似的设置,托管在其他地方的代理处理SSL身份验证&只需通过DMZ将请求转发到JBoss服务器,后者就可以忽略证书。
发布于 2018-07-27 07:21:59
请允许我给出一个额外的答案-- Apache+JBoss的一个非常常见的设置是将Apache用作JBoss的某种负载平衡器/反向代理前端。SSL通信完全由Apache完成。一个更好的方法是,在Apache和JBoss之间使用AJP,而不是HTTP,因为它在Servlet请求中设置了所有必要的信息,而不是使用X转发-.作为需要显式读取的附加标题的信息。
在这种情况下(使用mod_jk或mod_cluster),您还可以轻松地管理Apache后面的多个JBoss实例。当然,Apache和JBoss之间的通信不是加密的(我知道AJP不支持SSL)。
如果您希望进行加密通信,而Apache仍在进行所有外部SSL通信,那么Apache和JBoss之间的内部通信只需要由一个证书来覆盖,而Apache需要信任该证书。
还有一个--您只需将多个证书/私钥导入到已经存在的密钥库中,就可以将它们放入密钥库中。使用keystore -list,您可以查看keystore的内容。我从未测试过的是,如果JBoss将使用SNI来标识传入请求的正确证书/密钥。但是新的JBoss和Java默认支持SNI。
https://stackoverflow.com/questions/13647106
复制相似问题