[golang]是否可以不用证书写TLS服务器?
[golang]Is it possible to write TLS server without certificate?
从客户端我已经有了将 InsecureSkipVerify
设置为 true 的 tls 配置。如何为这个客户端编写服务器,它接受任何证书。
tls.config
也可以在服务器中提供帮助吗?比如将 InsecureSkipVerify
设置为 true?
不,正如@JimB 告诉您的那样,TLS 没有证书就无法工作。
道理很简单:TLS 是关于安全和证书的
加密密钥 提供安全性(TLS 使用 so-called
"asymmetric cryptography" 其中每一方都有一个密钥 对 组成
私有和 public 部分; public 部分是发送给另一方的内容
在进行 TLS 握手时)。
但另一方面,TLS 提供的安全性是 two-fold:
- 它提供参与方的相互认证
交换.
- 它提供传输通道的加密。
证书用于两个方面:它们包含用于 (2) 的加密密钥的事实,以及它们具有 所有者身份 编码的事实
在其中(并由获得特定证书的人验证(
用于 (1).
让我先不讨论 (1) 的详细工作原理
(虽然我真的敦促你阅读一些关于它的理论)但是(1)是什么
你真的想回避。
好处(对您来说)是它的成本低廉:
- 可以告知 TLS 客户端不要验证服务器的身份。
- 可以告诉 TLS 服务器做同样的事情(通常这是默认设置
他们运行的模式——这是常规网站的典型模式
例如)。
- 您可以为您的 TLS 创建 so-called self-signed certificate
服务器。
后者只需要能够生成的东西
X.509 证书; OpenSSL
通常用于此;
just google for it.
如果您使用的是 Debian 或 Debian 衍生版(如 Ubuntu、Mint 等)
考虑安装 ssl-cert
包并使用
它提供的 make-ssl-cert
程序。
从客户端我已经有了将 InsecureSkipVerify
设置为 true 的 tls 配置。如何为这个客户端编写服务器,它接受任何证书。
tls.config
也可以在服务器中提供帮助吗?比如将 InsecureSkipVerify
设置为 true?
不,正如@JimB 告诉您的那样,TLS 没有证书就无法工作。
道理很简单:TLS 是关于安全和证书的 加密密钥 提供安全性(TLS 使用 so-called "asymmetric cryptography" 其中每一方都有一个密钥 对 组成 私有和 public 部分; public 部分是发送给另一方的内容 在进行 TLS 握手时)。
但另一方面,TLS 提供的安全性是 two-fold:
- 它提供参与方的相互认证 交换.
- 它提供传输通道的加密。
证书用于两个方面:它们包含用于 (2) 的加密密钥的事实,以及它们具有 所有者身份 编码的事实 在其中(并由获得特定证书的人验证( 用于 (1).
让我先不讨论 (1) 的详细工作原理 (虽然我真的敦促你阅读一些关于它的理论)但是(1)是什么 你真的想回避。
好处(对您来说)是它的成本低廉:
- 可以告知 TLS 客户端不要验证服务器的身份。
- 可以告诉 TLS 服务器做同样的事情(通常这是默认设置 他们运行的模式——这是常规网站的典型模式 例如)。
- 您可以为您的 TLS 创建 so-called self-signed certificate 服务器。
后者只需要能够生成的东西
X.509 证书; OpenSSL
通常用于此;
just google for it.
如果您使用的是 Debian 或 Debian 衍生版(如 Ubuntu、Mint 等)
考虑安装 ssl-cert
包并使用
它提供的 make-ssl-cert
程序。