一个计算机技术爱好者与学习者

0%

好好学Linux:Linux中安装使用mkcert签发域名证书

1. mkcert简介

域名证书的签发,有两种方式:一种是权威机构签发,一种是自己签发。

mkcert是一个开源工具,可以帮助我们轻松创建本地开发所需的域名证书,以便进行开发和调试。
使用mkcert时,自动生成一个本地CA,并使用这个CA来签发证书。

相关资料:

2. 安装mkcert

1、安装nss-tools

1
yum install nss-tools

nss-tools 是 mkcert 的依赖工具。
nss-tools 中的 nss 是 Network Security Services 的缩写,它是一组开源软件库,用于支持跨网络的安全和身份验证服务,如安全套接字层(SSL)、传输层安全(TLS)以及其他安全和密钥管理协议。这个工具包可以支持创建、发送和管理网络协议的加密密钥和证书。

2、安装mkcert

1
2
3
wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.3.0/mkcert-v1.3.0-linux-amd64
chmod +x mkcert
mv mkcert /usr/local/bin

3. 使用mkcert自建CA并颁发域名证书

本节中,我们会自建CA,并签发 gitlab.voidking.com 域名的域名证书。

1、修改主机名(可选)

1
echo localca > /etc/hostname && hostanme localca

主机名决定了生成的CA中的subject和issuer的信息,建议改成localca这种可读性更强的主机名,生成CA证书后可以改回。

2、安装本地CA(生成CA)

1
mkcert -install

输出:

1
2
3
4
Using the local CA at "/root/.local/share/mkcert" ✨
The local CA is now installed in the system trust store! ⚡
ERROR: no Firefox and/or Chrome/Chromium security databases found
The local CA is now installed in Java's trust store! ☕

3、查看CA证书

1
2
3
mkcert -CAROOT # 获取CA根目录
cd /root/.local/share/mkcert
openssl x509 -in rootCA.pem -text -noout

4、生成证书(签发证书)

1
mkcert gitlab.voidking.com localhost 127.0.0.1

输出:

1
2
3
4
5
6
7
8
9
10
Using the local CA at "/root/.local/share/mkcert" ✨
Warning: the local CA is not installed in the Firefox and/or Chrome/Chromium trust store! ⚠
Run "mkcert -install" to avoid verification errors ‼

Created a new certificate valid for the following names 📜
- "gitlab.voidking.com"
- "localhost"
- "127.0.0.1"

The certificate is at "./gitlab.voidking.com+2.pem" and the key at "./gitlab.voidking.com+2-key.pem" ✅

5、查看证书

1
openssl x509 -in gitlab.voidking.com+2.pem -text -noout

4. 配置域名证书信任

设备上默认只信任权威机构签发的域名证书,而自签发的域名证书是不被信任的。
想要使设备信任自签发的域名证书,需要把用于签发域名证书的CA证书添加为信任机构。

1、下载rootCA.pem
/root/.local/share/mkcert目录中下载 rootCA.pem 到本地。

2、添加CA信任
(1)Chrome添加信任
设置,高级设置,管理证书,导入,选择rootCA.pem,证书存储选择受信任的根证书颁发机构,完成,出现警告点确定。重启Chrome。

(2)Firefox添加证书信任
选项,隐私与安全,证书,查看证书,导入,选择rootCA.pem。重启Firefox。

(3)Linux中添加证书信任
拷贝 rootCA.pem 到 /etc/pki/ca-trust/source/anchors/ 目录,然后执行 update-ca-trust

5. 使用openssl生成DHPARAM证书

DHPARAM证书是一种用于Diffie-Hellman密钥交换过程的证书。Diffie-Hellman协议是一个密钥交换协议,主要用于在安全通信中产生共享密钥,这个密钥可以用来加密后续的通信过程。使用DHPARAM证书既能够提高通信的安全性,又能够防止潜在的安全威胁。

gitlab 是一个Diffie-Hellman密钥交换的应用,因此需要 DHPARAM证书,这里我们生成一个。

1、使用OpenSSL生成DHPARAM证书pem文件

1
openssl dhparam -out dhparams.pem 2048

2、将证书文件的权限更改为600

1
chmod 600 dhparams.pem
  • 本文作者: 好好学习的郝
  • 原文链接: https://www.voidking.com/dev-linux-mkcert/
  • 版权声明: 本文采用 BY-NC-SA 许可协议,转载请注明出处!源站会即时更新知识点并修正错误,欢迎访问~
  • 微信公众号同步更新,欢迎关注~