我正在使用邮差测试我有一个API,当请求不包含子域时,一切都很好,然而,当我添加一个子域到URL时,我得到了这个响应。
无法得到任何回应
连接http://subdomain.localhost:port/api/时出错
为什么会发生这种情况:
服务器无法发送响应:请确保后端正在工作
正确
自签名SSL证书被阻止:通过关闭来修复此问题
“SSL证书验证”设置>通用
Proxy配置错误确保Proxy配置正确
在“设置”中>代理
请求超时:在“设置”中修改请求超时时间
如果我从邮差复制相同的URL并将其粘贴到浏览器中,我得到了一个正确的响应,是否有某种配置,我应该做邮差工作与子域?
首先去邮差的设置:
关闭“常规”页签中的SSL证书验证:
关闭“代理”页签的“全局代理配置和使用系统代理”:
使请求超时为0 (0)
配置Apache:
如果上述更改导致404响应,请继续阅读;-)
本地托管站点的用户(如XAMP和/或WAMP)可能能够使用https://前缀地址访问他们的虚拟站点,但这是一个谎言,要真正启用SSL(对于每个虚拟站点),配置Apache如下:
在您首选的文本编辑器中打开httpd-vhosts.conf文件(来自Apache的conf/extras目录)。
更改虚拟站点的设置,如下所示:
<VirtualHost *:80 *:443>
ServerName my-site.local
ServerAlias *.my-site.local
DocumentRoot "C:\xampp\htdocs\my-project\public"
SSLEngine on
SSLCertificateFile "path/to/my-generated.cert"
SSLCertificateKeyFile "path/to/my-generated.key"
SetEnv APPLICATION_ENV "development"
<Directory "C:\xampp\htdocs\my-project\public">
Options Indexes FollowSymLinks
AllowOverride All
Order allow, deny
Allow from all
</Directory>
</VirtualHost>
当然,生成一个伪ssl -certificate,并更改所有文件路径,例如从“path/到/my-generated”。变成真实的文件地址。
最后,通过在浏览器中访问本端站点进行测试,但是使用http://(没有S)前缀地址;Apache现在应该给出如下错误:
Bad Request
Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
您提到您使用的是CER证书。
根据邮差证书页面。
在CRT文件字段中选择客户端证书文件。目前,我们只支持CRT格式。对其他格式(如PFX)的支持很快就会到来。
扩展名CER, CRT不会让证书成为那种类型的证书但是,这些是例外的扩展名。
CER是二进制形式的X.509证书,DER编码。
CRT是一个二进制X.509证书,封装在文本(base-64)编码中。
通过OpenSSL可以将CER文件转换为CRT文件。我的运气不太好,但它看起来是这样的。
openssl x509 -inform PEM -in证书。输出certificate.crt
or
openssl x509 -通知DER -in证书。输出certificate.crt