Php 如何让Apache接受由Java';s键工具

Php 如何让Apache接受由Java';s键工具,php,macos,apache,symfony,ssl,Php,Macos,Apache,Symfony,Ssl,Apache/PHP/Symphony正在我的中间层中用于身份验证和路由。一个请求是通过http发送的,如果该请求验证了发出请求的人是否被授权,那么就通过https调用后端web服务。后端web服务使用自签名证书通过https进行。我可以直接点击后端服务,通过chrome inspector查看我的证书信息。当我通过url直接向后端发出请求时,一切正常。当我尝试通过中间层时,我得到一个响应,即504: {“code”:504,“message”:“出现网络通信错误”,“error”:{“code

Apache/PHP/Symphony正在我的中间层中用于身份验证和路由。一个请求是通过http发送的,如果该请求验证了发出请求的人是否被授权,那么就通过https调用后端web服务。后端web服务使用自签名证书通过https进行。我可以直接点击后端服务,通过chrome inspector查看我的证书信息。当我通过url直接向后端发出请求时,一切正常。当我尝试通过中间层时,我得到一个响应,即504:

{“code”:504,“message”:“出现网络通信错误”,“error”:{“code”:77,“message”:“SSL:can\u0027t加载CA证书文件\/etc\/pki\/tls\/certs\/CA bundle.crt”}

我将证书生成为:

/usr/local/jboss-eap-6.4/standalone/configuration/.keystore

使用命令:

keytool-genkey-keyalg RSA-alias jboss-keystore.keystore-storepass changeit-validity 9999-keysize 2048

我还通过以下方式更新了我的standalone.xml以引用该文件:

我的开发机器是OSX

似乎apache或symfony正在
/etc/pki/tls/certs/ca bundle.cert中查找证书,该文件在我的系统中不存在。在
/etc/apache2/httpd.conf
中搜索“pki”不会产生任何结果


如何设置apache以信任此证书,或者是否有其他方法可以更全局地信任此证书?

创建CA证书捆绑文件

系统正在寻找
/etc/pki/tls/certs/ca bundle.cert
,这是linux上的标准路径,但不是osx上的标准路径。我们通过生成文件来解决这个问题

我使用
keytool
生成了
.keystore
文件,并将
jboss
用于我的别名。为了构建ca bundle文件,我们需要它采用pem格式,因此我们需要将-rfc添加到export语句中。以下是命令:

cd /usr/local/jboss-eap-6.4/standalone/configuration
keytool -export -alias jboss -file local-sbx.dev.yourcompany.com.crt -keystore .keystore -rfc
获得文件后,可以将其分类并验证文件中是否包含
开始证书
结束证书
内容。如果是,请使用正确的格式

最后,创建目录结构,将证书移动到与bundle类似的位置(这只是一组相互附加的证书),然后重新启动apache:

mkdir -p /etc/pki/tls/certs/
sudo cp local-sbx.dev.yourcompany.com.crt /etc/pki/tls/certs/ca-bundle.crt
sudo apachectl restart
注意:这是的一个子问题,因此如果您仍然有问题,您可能还需要更新php设置。。。方向在提供的链接中