Linux自签证书并自信任
Contents
Question
本文最后更新于 August 4, 2024,文中内容可能已过时,请谨慎使用。
由于本地自建了Nginx,需要HTTPS访问,所以这里记录一下 Linux 下的 证书自签名和自信任。
操作环境:Ubuntu 24.04
假设我要签署的服务器域名 kiosk.io
自签证书
- 安装 openssl
|
|
- 生成 RootCA 的私钥
|
|
- 创建一个名为
ca.cnf
的配置文件,其中包含以下内容:
|
|
然后使用该配置文件创建CA证书:
|
|
- 生成 kiosk.io 服务器私钥
|
|
- 创建 kiosk.io 服务器域名的证书签名请求(CSR):
openssl.cnf
是一个 OpenSSL 配置文件,它包含了用于证书签名请求(CSR)、证书和证书颁发机构(CA)的设置。一个完整的openssl.cnf
文件可能包含多个部分,用于定义不同的配置选项。以下是一个基本的openssl.cnf
文件示例,它包含了用于生成自签名 CA 证书和服务器证书的配置:
|
|
创建
|
|
- 使用 CA 证书签署服务器 kiosk.io 的 CSR
openssl x509 -req -in kiosk.io.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out kiosk.io.crt -days 365 -extensions v3_req -extfile openssl.cnf
- 验证证书
openssl verify -CAfile ca.crt kiosk.io.crt
证书自信任
正常情况下,本地的 Chrome 浏览器是不信任的, 如下图
Linux系统:
在Linux系统中,添加CA证书通常涉及到更新系统的证书库。以下是在Ubuntu和其他基于Debian的系统上的步骤:
将CA证书复制到证书库目录:
sudo cp /path/to/your/ca.crt /usr/local/share/ca-certificates/
这里的
/path/to/your/ca.crt
是你的CA证书文件的路径。更新证书库:
sudo update-ca-certificates
这个命令会更新系统的证书库,并自动将新添加的证书包含进去。
更新 Chrome 浏览器的根证书
chrome -> 设置 -> 隐私设置和安全性 -> 管理证书 -> 导入