如果您使用嵌入式服务器进行设备管理,可能已经注意到浏览器对不支持SSL/TLS的网络服务器发出的标记警告。这种警告促使越来越多的设备制造商转向HTTPS,以确保安全的TLS通信。然而,打造可信、安全的通信路径极具有挑战性。本文将深入研究这些问题,并提供简单、精简的解决方案来保护您的嵌入式服务器。
如果您有使用TLS嵌入式服务器的经验,就会知道可能很难配置不会在浏览器中引发警告标志的证书。如果您还没有使用过TLS,那么当你在嵌入式服务器解决方案中启用它时,就要做好迎接意想不到的挑战的准备。虽然TLS通常被视为加密Web浏览器和嵌入式服务器之间通信的工具,但必须牢记信任所起的重要作用。
您可能已经注意到,当嵌入式服务器返回不受信任的SSL证书时,Web浏览器会闪烁警告。
而要与启用TLS的嵌入式服务器建立信任,Web浏览器必须满足以下条件:
注意:客户端计算机(包括PC、平板电脑和手机)必须将CA证书存储在证书存储区中。如果签署服务器证书的CA未预先安装在证书存储区中,则嵌入式服务器将被视为不可信。为了更好地了解证书存储,请检查计算机上预安装的CA证书。例如,在Windows上执行命令certmgr.msc以打开证书存储区。
您现在可能已经了解到管理嵌入式设备证书的复杂性。如果您一直将此问题转嫁给终端客户,那么对于非技术用户来说,解决此问题似乎几乎是不可能的。如前所述,使用不受信任的HTTPS连接与使用不安全的HTTP连接一样有风险。浏览器必须获得可信证书,才能区分合法设备和中间人攻击。
即使是精通技术的客户,如果选择充当自己的证书颁发机构,也会发现管理工作相当艰巨。如果您能提供完全自动化的证书管理解决方案,您的产品将会呈现出更加专业的形象。您需要一种解决方案,能让客户在浏览新购买的设备时不会出现浏览器错误信息。
得益于新的证书颁发机构Let's Encrypt,现在可以完全自动化地为专用网络中运行的嵌入式服务器安装免费且受信任的证书。但是,Let's Encrypt需要一些专用组件,才能为专用网络内的服务器提供自动证书管理。Real Time Logic开发了两款免费产品,它们扩展了Let's Encrypt,使为专用网络内的设备自动安装可信证书成为可能。这两款产品的源代码都可以从GitHub下载。Real Time Logic对其两款SharkTrust产品的组件进行了详细说明。您还可以在此页面上找到每个产品各自GitHub资源库的链接。每个资源库都包含相应产品的分步安装说明。
(原文刊登于EDN姊妹网站Embedded,参考链接:Secure embedded servers with automated certificate management,由Ricardo Xie编译。)