在生产环境中运行typesense服务器时出现问题,SSL:没有与目标主机名' www.example.com '匹配备用证书使用者名称api.example.com

wxclj1h5  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(151)

我正尝试按照文档中的说明在生产环境中运行typesense服务器。
我的Web服务器使用Plesk,所以我创建了api.example.com,并为此路由安装了证书,然后我将主机类型更改为“no hosting”,这样这个子域就指向服务器,并可以使用这些参数访问typesense:

'host' => 'api.example.com', 'port' => '443', 'protocol' => 'https'

我运行这个docker命令来启动typesense服务器:

docker run -p 8108:8108 -v/tmp/data:/data -v/etc/ssl/certs:/certs -v/etc/ssl/private:/private typesense/typesense:0.23.1 --data-dir /data --api-key=xyz --ssl-certificate=/certs/apitypesense.crt --ssl-certificate-key=/certs/apitypesense.key --api-port=443 --enable-cors

但当我尝试索引数据时,收到以下错误:Fatal error: Uncaught Http\Client\Exception\RequestException: SSL: no alternative certificate subject name matches target host name 'api.example.com'
请注意,apitypesense.crtapitypesense.key是由Plesk中的Let's Encrypt生成的证书。
我做错了什么?先谢谢你

wgx48brx

wgx48brx1#

已解决,
问题出在plesk的配置上,而不是SSL本身,我把服务器设置为“无主机”模式,但这不允许我拥有SSL证书,所以我把它放回Web主机模式,然后,访问“Apache和nginx”设置,我配置了以下附加的nginx指令:

location ~ ^/.*{
proxy_pass http://0.0.0.0:8108;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}
所以现在我可以api.example.com通过HTTPS和443端口访问www.example.com。

相关问题