【发布时间】:2015-12-11 22:09:34
【问题描述】:
我在 Linux Ubuntu 15.04 VM 上运行 Apache2。我创建了一个自签名的 openssl 证书。因此,我有以下文件夹结构: “usr/local/openssl”,而该目录包含以下主要文件夹:bin;证书;库;私人的; openssl.conf; ...
在 certs 文件夹中,我创建了一个“zertifikat-pub.pem”文件,并在私有文件夹中创建了一个“zertifikat-key.pem”文件。当尝试运行“composer update”以连接到在 apache2 上运行的存储库时,我不断收到以下错误:
错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败 无法启用加密 无法打开流:操作失败
运行“var_dump(openssl_get_cert_locations());”时,我得到以下信息:
根据我的阅读,default_cert_file 和 default_cert_dir 似乎有很大的错误,但我不知道如何更改它。
在 php ini 文件中,我添加了以下两行:
openssl.cafile=/usr/local/openssl/certs/ca.crt
openssl.capath=/usr/local/openssl/certs
此外,我将变量“SSL_CERT_FILE”和“SSL_CERT_DIR”更改为与 php.ini 中相同的路径。
在 openssl.conf 文件中,我设置了:
dir = /usr/local/openssl
在 apache2 虚拟主机文件(它在端口 443 上托管存储库,作曲家试图连接),我添加了:
# ssl
SSLEngine on
SSLCertificateFile /usr/local/openssl/certs/ca.crt
SSLCertificateKeyFile /usr/local/openssl/private/ca.key
重新启动 apache 和计算机等并不能解决错误。总是获得相同的证书失败错误。
我做错了什么? 奇怪的行为是我可以在浏览器中访问该站点,但不能通过 composer..
我是否需要将一些文件复制到我的 Windows 客户端,例如导入证书?目前,ca.crt 和 ca.key 位于 linux 服务器上。我也尝试将ca.crt复制到windows并添加到windows上项目的composer.json文件中:
"options": {
"ssl": {
"local_cert": "C:/Users/Pb/Documents/ca.crt"
}
}
【问题讨论】:
标签: php apache openssl ssl-certificate composer-php