值得一看
广告
彩虹云商城
广告

热门广告位

Nginx 自签名 SSL 证书生成与配置实操指南,使用 Docker 快速搭建

一、简介

  • 使用开源自签证书生成工具 mkcert 快速生成自签名 SSL 证书
  • 使用Docker快速启动Nginx,并配置启用自签名 SSL 证书访问
  • mkcert 开源工具地址:https://github.com/FiloSottile/mkcert
  • Docker快速启动Nginx工具代码参考:https://github.com/luler/nginx_ssl_fast
  • Nginx 自签证书访问工作原理参考下图:

二、安装

1. 安装 mkcert 工具,并生成自签证书

  • 安装方法一:直接下载可执行文件,下载地址:https://github.com/FiloSottile/mkcert/releases

  • 安装方法二:大多数发行版Linux都可以直接安装,如ubuntu/Debian

    apt install mkcert -y
  • 安装之后,可以一键生成自签证书,如下命令

    //生成域名test.aimm.site的自签名SSL证书
    mkcert test.aimm.site
    //生成ip 192.168.1.1 的自签名SSL证书
    mkcert 192.168.1.1

2. Nginx配置使用自签名SSL证书

  • 不限定域名ip,该服务会独占一个端口,可以通过ip+端口、域名+端口方式访问
    server {
        listen 8443 ssl default_server reuseport;
        server_name _; # 匹配所有ip、域名请求
        #设置证书
        ssl_certificate /etc/nginx/conf.d/certs/justfortest.com.pem;
        ssl_certificate_key /etc/nginx/conf.d/certs/justfortest.com-key.pem;
        client_max_body_size 100M;  # 设置为100MB
        # 这里可以反向代理到任何后端服务,如下示例代理到portainer服务                                                 
        location / {
            proxy_pass http://host.docker.internal:9000;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
  • 限定域名访问,一个端口服务于多个域名,根据域名反代到不同的后端服务
    server {
        listen 9443 ssl default_server;
        server_name _; # 默认匹配所有ip、域名请求
        # 为默认 server 块添加 SSL 证书配置
        ssl_certificate /etc/nginx/conf.d/certs/justfortest.com.pem;
        ssl_certificate_key /etc/nginx/conf.d/certs/justfortest.com-key.pem;
        return 444; # 特殊状态码,会关闭连接而不发送响应头
    }
    server {
        listen 9443 ssl;
        server_name portainer.aimm.site; # 如果需要指定域名访问,修改为你的域名
        #设置证书
        ssl_certificate /etc/nginx/conf.d/certs/justfortest.com.pem;
        ssl_certificate_key /etc/nginx/conf.d/certs/justfortest.com-key.pem;
        client_max_body_size 100M;  # 设置为100MB
        location / {
            proxy_pass http://host.docker.internal:9000;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

3. Docker快速启动Nginx

  • 新建docker-compose.yml配置文件,内容如下
    services:
      nginx:
        image: nginx:latest
        network_mode: host
        volumes:
          - ./conf.d:/etc/nginx/conf.d
        restart: always
  • 其中conf.d目录提前创建,配置格式如下
    conf.d/
    ├── certs //证书文件目录,可以使用mkcert工具生成,对应Nginx配置文件中的ssl证书配置
    │   ├── justfortest.com-key.pem
    │   └── justfortest.com.pem
    └── default.conf  //Nginx配置文件,可复制上面的Nginx配置示例
  • 配置完毕,一键启动
    docker-compose up -d

三、访问使用

  • 自签证书网站都会被浏览器标识为不安全,莫慌张,正常的,点击继续即可
    浏览器的不安全网站提示
    图片[1]-Nginx 自签名 SSL 证书生成与配置实操指南,使用 Docker 快速搭建-创客网
    点击继续即可进入Nginx反代的后端应用服务,如下示例是进入portainer服务
  • 如果域名已经解析到服务器ip,也可以通过域名访问,如下示例

四、总结

  • mkcert工具生成自签名证书比openssl简单快捷多了,随时随地快速生成自定义SSL证书
  • 给自己的网站加上自签名SSL证书,在一定程度上提高了网站的安全性,防止公共网络数据窃听、中间人工具等
温馨提示: 本文最后更新于2025-09-30 16:06:56,某些文章具有时效性,若有错误或已失效,请在下方留言或联系在线客服
文章版权声明 1 本网站名称: 创客网
2 本站永久网址:https://new.ie310.com
1 本文采用非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
2 本站所有内容仅供参考,分享出来是为了可以给大家提供新的思路。
3 互联网转载资源会有一些其他联系方式,请大家不要盲目相信,被骗本站概不负责!
4 本网站只做项目揭秘,无法一对一教学指导,每篇文章内都含项目全套的教程讲解,请仔细阅读。
5 本站分享的所有平台仅供展示,本站不对平台真实性负责,站长建议大家自己根据项目关键词自己选择平台。
6 因为文章发布时间和您阅读文章时间存在时间差,所以有些项目红利期可能已经过了,能不能赚钱需要自己判断。
7 本网站仅做资源分享,不做任何收益保障,创业公司上收费几百上千的项目我免费分享出来的,希望大家可以认真学习。
8 本站所有资料均来自互联网公开分享,并不代表本站立场,如不慎侵犯到您的版权利益,请联系79283999@qq.com删除。

本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容