怎么想起用 gnutls 了?
你知道的,windows 10 是“微软推出的最后一代windows”,而微软又推出了 windows 11。虽然我大多数时间在使用 archlinux,但总有些事情必须得用 windows (对吧,matlab?)。由于忍受不了win11,我于今年年初将电脑上的 win11 重装为 win10。但是在下载 openssl 时我遇到了一点网络问题,遂下载了gnutls。
来签发证书吧!
此处以 我之前用 openssl 签的证书 举例。
参考资料: 红帽关于 gnutls 的文章
准备工作
新建一个空文件夹并在此文件夹内打开终端,我们将在此文件夹内签发证书。 在此文件夹内新建两个文件夹,一个名为’CA’(放我们签的根证书的) 一个名为’github’(放我们签的 SSL 证书的)
制作CA证书
在 CA 文件夹内新建文件 CA.cfg ,写入以下内容:
country = "CN"organization = "Local Fake CA LLC"cn = "Local Fake CA"
expiration_days = 3650
casigning_keycert_signing_keycrl_signing_key在终端里执行命令
# 生成私钥certtool --generate-privkey --outfile ./CA/ca.key# 签发证书certtool --generate-self-signed --load-privkey ./CA/ca.key --template ./CA/ca.cfg --outfile ./CA/ca.crt用这个 CA 证书签发 SSL 证书
在 github 文件夹内新建文件 github.cfg ,写入以下内容:
country = "CN"organization = "Github Local Fake LLC"cn = "Github Local Fake CA"
expiration_days = 365
signing_keyencryption_keykey_agreementtls_www_server
dns_name = "github.com"dns_name = "*.github.com"dns_name = "githubusercontent.com"dns_name = "*.githubusercontent.com"dns_name = "github.githubassets.com"
ip_address = "127.0.0.1"ip_address = "::1"在终端里执行命令
# 生成私钥certtool --generate-privkey --outfile ./github/github.key# 签发证书certtool --generate-certificate --load-privkey ./github/github.key --template ./github/github.cfg --load-ca-certificate ./CA/ca.crt --load-ca-privkey ./CA/ca.key --outfile ./github/github.crt后记
就上面的用途而言,gnutls 比 openssl 方便多了。 似乎 cloudflare 也有个这方面的工具 cfssl,找个机会试一试。

