docker启动nginx https自签名证书配置

启动测试应用时, 有时需要自己配置证书签名:
1 使用系统自带openssl

openssl req \
> -x509 \
> -nodes \
> -days 365 \
> -newkey rsa:2048 \
> -keyout example.key \
> -out example.crt

各参数含义:

  • req:处理证书签署请求。
  • -x509:生成自签名证书。
  • -nodes:跳过为证书设置密码的阶段,这样 Nginx 才可以直接打开证书。
  • -days 365:证书有效期为一年。
  • -newkey rsa:2048:生成一个新的私钥,采用的算法是2048位的 RSA。
  • -keyout:新生成的私钥文件为当前目录下的example.key。
  • -out:新生成的证书文件为当前目录下的example.crt。
    执行过程中会有一些输入, 着重看下Common Name (e.g. server FQDN or YOUR name) []:127.0.0.1的输入,
    执行完成后当前目录会生成一个自签名key和 crt文件
    2 配置nginx
server {
    listen 443 ssl http2;
    server_name  localhost;

    ssl                      on;
    ssl_certificate          /etc/nginx/certs/example.crt;# 生成crt路径
    ssl_certificate_key      /etc/nginx/certs/example.key; # 生成key路径

    ssl_session_timeout  5m;

    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers   on;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

3 启动端口映射(443端口)

docker container run \
  --rm \
  --name mynginx \
  --volume "$PWD/html":/usr/share/nginx/html \
  --volume "$PWD/conf":/etc/nginx \
  -p 127.0.0.2:8080:80 \
  -p 127.0.0.2:8081:443 \
  -d \
  nginx

4 访问应用, 如提示证书不安全, 选择继续访问即可;

posted @ 2024-02-23 11:09  干炸小黄鱼  阅读(237)  评论(0编辑  收藏  举报