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

0%

好好学Docker:Docker容器中安装使用mkcert

1. 前言

《好好学Linux:Linux中安装使用mkcert签发域名证书》一文中,我们学习了Linux中安装使用mkcert签发域名证书的方法。

Linux直接安装mkcert存在两个问题:

  • 如果一个新环境需要签发证书,需要找一台主机重新安装nss-tools和mkcert,比较麻烦。
  • mkcert生成的CA证书和域名证书中,subject和issuer信息依赖主机名。为了提高证书的可读性,个人建议修改主机名,而修改主机名可能会影响主机中的其他服务。

如果把mkcert安装到Docker容器中,就可以解决上面的两个问题。

2. 制作mkcert镜像

1、编写 Dockerfile

1
2
3
4
5
6
7
8
FROM debian:bookworm-slim

RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources
RUN apt update && apt install -y libnss3-tools wget
RUN wget -O mkcert "https://mirror.ghproxy.com/https://github.com/FiloSottile/mkcert/releases/download/v1.3.0/mkcert-v1.3.0-linux-amd64" && chmod +x mkcert && mv mkcert /usr/local/bin

WORKDIR /root/.local/share/mkcert
CMD ["tail", "-f", "/dev/null"]

国内加速小技巧:

  • 替换了Debian软件安装源
  • 替换了github release下载地址

2、打包mkcert镜像并上传

1
2
3
docker build -t voidking/mkcert:v1.3.0-debian-bookworm-slim .

docker push voidking/mkcert:v1.3.0-debian-bookworm-slim

3、mkcert镜像地址
需要的同学自取:dockerhub - voidking/mkcert

3. 使用mkcert镜像

1、启动mkcert容器

1
2
3
4
docker run --name mkcert -d \
-h localca \
-v /opt/mkcert:/root/.local/share/mkcert \
voidking/mkcert:v1.3.0-debian-bookworm-slim

挂载 /opt/mkcert 到容器的 /root/.local/share/mkcert ,方便下载证书。

2、登录进入容器

1
docker exec -it mkcert /bin/bash

3、安装CA,颁发证书

1
2
3
mkcert -install

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