正在验证SSL证书';组织名称卷曲

正在验证SSL证书';组织名称卷曲,ssl,curl,Ssl,Curl,我正在使用cURL将更新文件从我的一台服务器下载到设备上。更新由对设备的HTTP请求触发,该设备包含从中下载更新的URL。考虑到这个URL可以是任何安全的东西,我想在开始下载之前验证URL中的服务器是否是我自己的。还有一些对服务器的警告: 服务器的通用名称将来可能会更改,因此解决方案必须能够适应这种情况。一旦脚本处于活动状态,对设备的访问将受到限制,因此应避免更改配置(如预期的通用名称) 服务器受HTTPS保护,并具有受信任的根CA签名SSL证书。我希望在自签名证书上继续使用受信任的SSL证书

我正在使用cURL将更新文件从我的一台服务器下载到设备上。更新由对设备的HTTP请求触发,该设备包含从中下载更新的URL。考虑到这个URL可以是任何安全的东西,我想在开始下载之前验证URL中的服务器是否是我自己的。还有一些对服务器的警告:

  • 服务器的通用名称将来可能会更改,因此解决方案必须能够适应这种情况。一旦脚本处于活动状态,对设备的访问将受到限制,因此应避免更改配置(如预期的通用名称)
  • 服务器受HTTPS保护,并具有受信任的根CA签名SSL证书。我希望在自签名证书上继续使用受信任的SSL证书
深思熟虑的解决方案
  • 在服务器上使用自签名CA,并确保服务器的证书在启动下载之前由该CA签名。但是,这有一个缺点,即浏览器不信任证书等
  • 一个想法是检查服务器证书上的“组织名称”,确保它与我的组织匹配。这将允许我继续使用受信任的证书,并且如果公共名称更改,则不会更改有没有办法使用CURL来实现这一点?
如果失败,是否有其他工具/解决方案可用于实现此目标?

思想
  • 为了实现这一点,我可能需要连接到SSL验证中,我假设该验证是由外部工具(如openssl)执行的
  • CURL已经检查了证书中的“common name”,并将其与请求的域名进行了对比,也许我可以连接到这个

目前还不清楚您正试图通过此功能实现什么,而现有的通用名称检查功能尚未实现。如果您担心有人可以创建具有相同通用名称的证书,那么该证书也可能包含您的组织名称。我应该补充,服务器的通用名称可能会更改,因此我希望验证一个不会更改的附加字段。此外,公用名的现有检查仅检查它是否匹配请求的域名,而不是我指定的名称。“…公用名的现有检查仅检查它是否匹配请求的域名,而不是我指定的名称…”-我仍然不确定您试图实现的目标。您是否指定了URL以及证书CN/SAN中的预期内容?如果目标是接受任何URL,只要证书是由您颁发的,那么最好使用您自己的CA并只接受此CA颁发的证书。也许您可以描述您试图解决的更广泛的问题,而不是您特定的解决方案想法(即)。同意我的问题肯定属于XY问题,事后看来,我应该问得更广泛一些。我将对其进行编辑并添加我选择此解决方案的原因。“…我建议从服务器证书中提取一些唯一标识我的服务器的内容,这些内容不会随新的不同证书而更改…”-通常使用公钥。如果证书发生更改,您可以重用相同的密钥。这是唯一能让你确信没有人伪造的东西。