[golang]是否可以在没有证书的情况下编写TLS服务器?

时间:2017-02-15 22:17:39

标签: go https x509certificate tls1.2

从客户端我已经有tls config,它将InsecureSkipVerify设置为true。如何为这个接受任何证书的客户端编写服务器。 tls.config也可以在服务器上提供帮助吗?比如将InsecureSkipVerify设置为true?

1 个答案:

答案 0 :(得分:2)

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

原因很简单:TLS完全是关于安全性和证书 是加密密钥,提供安全性(TLS使用所谓的 "非对称加密"其中每一方都有一个由对组成的 私人和公共部分;公共部分是被送到另一方的 在进行TLS握手时。)

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

  1. 它提供参与的各方的相互认证 交换。
  2. 它提供传输通道的加密。
  3. 证书用于两个方面:它们包含加密密钥的事实用于(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程序。