【问题标题】:[golang]Is it possible to write TLS server without certificate?[golang]没有证书可以写TLS服务器吗?
【发布时间】:2017-02-15 22:17:38
【问题描述】:

从客户端我已经有 tls 配置,它将 InsecureSkipVerify 设置为 true。如何为此客户端编写带有任何证书的服务器。 tls.config 也可以帮助服务器吗?喜欢将InsecureSkipVerify 设置为true?

【问题讨论】:

  • 不,没有证书(和密钥)就不能使用 TLS。
  • 您可以在letsencrypt.org 为您的域创建免费且完全有效的 TLS 证书...可以在domains.google.com/registrar 创建价格合理的域...这可能会节省您的时间

标签: go https x509certificate tls1.2


【解决方案1】:

不,正如@JimB 告诉你的那样,没有证书,TLS 就无法工作。

原因很简单:TLS 就是关于安全性和证书 是 加密密钥 提供安全性(TLS 使用所谓的 “非对称加密”,其中每一方都有一个密钥,包括 私人和公共部分;公共部分是发送给另一方的 进行 TLS 握手时)。

但另一方面,TLS 提供的安全性是双重的:

  1. 它提供参与方的相互身份验证 交换。
  2. 它提供传输通道的加密。

证书用于两个方面:它们包含加密密钥的事实用于 (2),以及它们具有 所有者身份 编码的事实 在其中(并由颁发特定证书的人验证( 用于(1)。

让我不要离题来详细讨论 (1) 的工作原理 (虽然我真的敦促你阅读一些关于它的理论)但是(1)是什么 你真的想回避。

(对您而言)好处是它便宜可行:

  • 可以告诉 TLS 客户端不要验证服务器的身份。
  • 可以告诉 TLS 服务器做同样的事情(通常是默认设置) 他们运行的模式——这是常规网站的典型模式 例如)。
  • 您可以为您的 TLS 创建一个所谓的self-signed certificate 服务器。

后者只需要能够生成的东西 X.509 证书; OpenSSL 通常用于此目的; just google for it.

如果您使用的是 Debian 或 Debian 衍生产品(如 Ubuntu、Mint 等) 考虑安装ssl-cert 包并使用 它提供的make-ssl-cert 程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 2019-02-14
    • 2014-02-20
    • 1970-01-01
    • 2016-10-20
    • 2017-12-11
    • 2014-12-05
    • 1970-01-01
    相关资源
    最近更新 更多