SSL:无法加载CA证书文件/etc/pki/tls/certs/ca-bundle.crt

在我的本地开发机器(osx)上,我在8443上使用jboss来服务web服务。当我直接打到url时,我得到了我正在寻找的json响应。 我们在工作的体系结构包括一个中间层(apache / php),可以进行身份​​validation和路由。 如果事情validation,那么它将请求转发到后端。

当我在端口80上使用apache和8081上使用jboss(使用http)。 一切都为我工作得很好。 现在我试图使用8443,事情不起作用。

我最近通过https(8443)而不是http(8081)将后端更改为服务器。 我可以直接点击https 8443上的请求并获得json响应。 当我点击apache并进行身份validation,然后尝试redirect到https 8443,我从chrome的检查器收到以下消息:“SSL:无法加载CA证书文件/etc/pki/tls/certs/ca-bundle.crt”。

在这里输入图像说明

我的虚拟主机设置为捕捉*:80个请求。 我想我可能需要设置虚拟主机来接受443请求或安装ca-certificates像谈论我如何处理证书使用cURL而试图访问HTTPS url? 。 我期待着看有没有人知道正确的方向应该是什么。

当我查看文件系统时,文件/etc/pki/tls/certs/ca-bundle.crt不存在。 当我向中间层发出请求时,我看到请求命中了/var/log/apache2/access_log而在/var/log/apache2/error_log什么都没有。

什么是需要解决这个问题? 这是一个虚拟主机的configuration,以捕获请求443? 是否要在链接中安装ca-cert? 两者的结合? 或者是其他东西? 请提供足够的信息来解决问题,或提供足够的信息链接。

我解决了我的问题,并正在做文章的文章,以防其他人有类似的问题。 有几个问题,我不得不解决这个问题。

PHP安装

我的/etc/apache2/httpd.conf引用了我的默认osx php安装,而不是我家的brew安装的php。 解决方法是编辑httpd.conf并将其指向正确的安装。

 #Loadmodulee php5_module /usr/local/opt/php53/libexec/apache2/libphp5.so Loadmodulee php5_module /usr/local/Cellar/php53/5.3.29_4/libexec/apache2/libphp5.so 

您可以使用以下命令创建一个类似的使用home brew创建的设置:

 brew install homebrew/php/php53 brew install homebrew/php/php53-igbinary --build-from-source brew install homebrew/php/php53-intl brew install homebrew/php/php53-mcrypt brew install homebrew/php/php53-memcached brew install homebrew/php/php53-mongo brew install homebrew/php/php53-xdebug 

创建CA Cert捆绑文件

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

我使用keytool生成.keystore文件,并使用jboss作为我的别名。 为了构建ca包文件,我们需要它是pem格式,所以我们需要在我们的export语句中添加-rfc。 下面是命令:

 cd /usr/local/jboss-eap-6.4/standalone/configuration keytool -export -alias jboss -file local-sbx.dev.yourcompany.com.crt -keystore .keystore -rfc 

获得该文件后,您可以将其识别出来,并验证该文件是否包含BEGIN CERTIFICATEEND CERTIFICATE内容。 如果是这样,它在正确的格式。

最后,创建目录结构,移动证书,使其像捆绑(这只是一堆相互追加的证书),然后重新启动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