我正在使用cURL将更新文件从我的一台服务器下载到设备。更新由对设备的HTTP请求触发,该请求包含从中下载更新的URL。鉴于此URL可以保护这一点,我想在启动下载之前将URL中的服务器验证为我自己的。有问题的服务器还有一些警告:
- 服务器的通用名称将来可能会发生变化,因此解决方案必须能够适应这一点。一旦脚本实时访问设备将受到限制,因此应避免更改配置(如预期的通用名称)。
- 服务器在HTTPS下受到保护,并具有受信任的根CA签名SSL证书。我希望继续使用受信任的SSL证书而非自签名证书。
考虑解决方案
- 在服务器上使用自签名CA并确保在启动下载之前由此CA签署服务器证书。但是,这样做的缺点是证书不受浏览器等信任。
- 一个想法是检查"组织名称"在服务器的证书上,并确保它与我的组织匹配。这将允许我继续使用可信证书,并且如果公共名称改变则不会改变。 使用CURL有没有办法做到这一点?
如果没有其他工具/解决方案可以用来实现这一目标吗?
思想
- 为了达到这个目的,我可能需要加入SSL验证,我认为这是由openssl等外部工具进行的?
- CURL已检查"常用名称"在证书中并根据请求的域名进行检查,也许我可以加入这个?