我建立一个应用程序以及我计划使用OpenSSL为确保数据传输。

我计划对仅有的客户的验证服务器的证书。我困惑我是如何应该确保服务器的证书。我想加密服务器的证书含有私人钥匙,但是我不想用任何硬性编码钥匙对这个加密。

什么样的都是一些共同的做法,随后通过应用采用SSL?

有帮助吗?

解决方案

只是为了确保我们有我们的术语觉,"SSL证书"共同的说法真是由两部分组成:

  • 公共证书
  • 私人钥匙

公共证件是签署了你选择了加利福尼亚(证机构),在这之后可以自由发布。这不需要安全或加密,并且的确将它送到客户连接到你的服务器作为一部分的SSL协商。

私关键组成部分应该受到保护。在大多数情况下,这只是储存作为一个加密的文件服务器。高档的解决方案,使用专用的"防篡改"加密硬件(Hsm--硬件的安全模块)储存的私人钥匙。这些范围从智能卡为基础的解决方案的多关键,网络启用电器有m/n控制等等。有的风险(不提及费用)与Hsm,我将不在这里。

许多应用简单的保留的私人钥匙磁盘上。有几种选择来安全的关键文件:

  • 依靠的系统和文件安全的权限(即不加密的私人钥匙)。例如,大多数ssh进程这样做。
  • 使用任何机构的服务器提供了进行加密的文件的密码保护的加密是一个标准特征在大多数网络服务器。(如果你自己使用OpenSSL API,选择一个显而易见地关键的格式)。

一如既往,有一个安全贸易。特别是,如果您使用的密码保护的加密私人钥匙文件和你的经验应用程序意外重新启动(例如停电),然后有人将需要提供密码应用程序,因为它重新启动。储存的密码在一读文件通过系统初始脚本(作为鼓励通过至少两个网服务器供应商)增加很少在条款的真正的安全。很难让你离开的私钥的文件加密但是如果你是唯一管理员/易怒的小店,你绝对应该考虑可能会发生什么,如果服务器重新启动的时候你是不是可用的,什么样的成本可能是你的业务。

其他提示

不太确定你要问的是什么。服务器证书发送给您,客户端;您通过检查其签名验证证书(使用SHA-1而不是MD5,MD5已被破解。)您从CA获得的密钥是公共方面; CA和服务器证书持有者将自己的私钥保留给自己。您可以验证证书,因为公钥足以解密使用私钥加密的邮件。因此,您不必担心在保持证书加密的情况下。

查看有关SSL / TLS的维基百科文章

  

我对如何保护服务器证书感到困惑。

您无需保护服务器的证书。这是一份公开文件

  

我想加密包含私钥的服务器证书

服务器的证书不包含私钥。

  

但我不想使用任何硬编码密钥进行此加密。

您无需进行任何加密。您需要保护的唯一服务器资产是其私钥,该私钥与其证书完全不同。在OpenSSL的情况下,它甚至可以是不同的文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top