如何在Windows机器上为Docker/Portainer创建本地localhost SSL证书
Windows Docker 环境 Portainer 本地SSL证书配置分步指引
前置准备
确认你已经完成以下操作:
- Docker Desktop for Windows 已正常安装并启动
- 已有可正常运行的Portainer容器(仅存在访问提示不安全的问题)
步骤1:创建证书存储目录
在C盘根目录新建名为portainer-certs的文件夹,避免后续出现权限问题。
步骤2:生成本地自签名SSL证书
使用OpenSSL生成证书,如果你已安装Git,直接打开Git Bash执行以下操作即可,也可以使用WSL终端:
- 切换到证书目录:
cd /c/portainer-certs
- 执行生成命令,证书有效期设为365天,域名绑定localhost:
openssl req -x509 -newkey rsa:4096 -keyout portainer.key -out portainer.crt -days 365 -nodes -subj "/CN=localhost"
执行完成后,portainer-certs文件夹下会生成portainer.key(私钥文件)和portainer.crt(证书文件)两个文件。
步骤3:重新启动Portainer容器加载证书
如果你已经创建过Portainer容器,先执行以下命令删除旧容器(Portainer数据存在独立卷中,不会丢失):
打开PowerShell或者CMD执行:
docker stop portainer docker rm portainer
执行新的启动命令,挂载证书目录并指定SSL配置:
docker run -d -p 9443:9443 -p 8000:8000 --name portainer --restart=always ` -v /var/run/docker.sock:/var/run/docker.sock ` -v portainer_data:/data ` -v C:\portainer-certs:/certs ` portainer/portainer-ce:latest ` --sslcert /certs/portainer.crt --sslkey /certs/portainer.key
参数说明:
-v C:\portainer-certs:/certs:将本地证书目录挂载到容器内部的/certs路径--sslcert、--sslkey:指定Portainer加载的证书和私钥路径9443是Portainer默认的HTTPS访问端口
步骤4:本地系统信任自签名证书
自签名证书默认不被系统信任,需要手动导入到受信任根证书列表:
- 打开
C:\portainer-certs文件夹,双击portainer.crt文件 - 点击「安装证书」,存储位置选择「本地计算机」,点击下一步(弹出UAC权限提示请选择允许)
- 选择「将所有的证书都放入下列存储」,点击「浏览」,选择「受信任的根证书颁发机构」,点击确定
- 依次点击下一步、完成,弹出安全警告时选择「是」,提示导入成功即可。
步骤5:验证访问
打开浏览器输入https://localhost:9443访问Portainer,地址栏会显示安全的锁标,不会再提示连接不安全。
注意事项
- 不要继续使用HTTP协议的9000端口访问,避免跳转到不安全地址
- 证书有效期为1年,到期后重复步骤2生成新证书,重启Portainer容器即可生效
- 如果需要局域网其他设备访问,生成证书时将命令里的
/CN=localhost改成你Windows主机的局域网IP(比如/CN=192.168.3.15),其他设备导入该证书后通过https://对应IP:9443访问即可正常显示安全标识。
内容的提问来源于stack exchange,提问作者Vusumzi
相关产品推荐
相关产品推荐

