it编程 > 开发工具 > Docker

Nginx配置ssl支持https全过程(docker版)

81人参与 2024-10-17 Docker

在docker中配置nginx以使用ssl(即https)主要涉及几个步骤:

准备ssl证书和密钥、编写nginx配置文件以使用这些证书,以及通过docker容器运行nginx。

以下是一个详细的步骤指南:

1.准备ssl证书和密钥

首先,你需要有一对ssl证书(.crt或.pem文件)和密钥(.key文件)。

这些文件可以是自签名的(仅用于测试目的),也可以是从证书颁发机构(ca)购买的。

如果你还没有证书,可以使用openssl生成自签名证书(仅用于测试):

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

执行此命令时,你将需要填写一些关于你的“域”的信息(尽管对于自签名证书,这些信息并不重要)。

2.编写nginx配置文件

在docker中,通常会将nginx配置文件放在docker镜像外部,并通过docker命令或docker compose文件将其传递给容器。

以下是一个基本的nginx配置文件示例,它配置了ssl:

nginx.conf

server {  
    listen 443 ssl;  
    server_name yourdomain.com;  
  
    ssl_certificate /etc/nginx/ssl/mydomain.crt;  
    ssl_certificate_key /etc/nginx/ssl/mydomain.key;  
  
    location / {  
        root   /usr/share/nginx/html;  
        index  index.html index.htm;  
    }  
  
    error_page   500 502 503 504  /50x.html;  
    location = /50x.html {  
        root   /usr/share/nginx/html;  
    }  
}

在这个配置中,/etc/nginx/ssl/mydomain.crt 和 /etc/nginx/ssl/mydomain.key 是ssl证书和密钥的路径,这些文件需要被放置在docker容器内nginx能够访问到的位置。

3.创建docker镜像或使用现有镜像

4.使用docker运行nginx

以下是一个使用docker命令运行nginx容器并传递ssl证书和配置文件的示例:

docker run --name my-nginx \  
    -v /path/to/your/nginx.conf:/etc/nginx/nginx.conf:ro \  
    -v /path/to/your/ssl/mydomain.crt:/etc/nginx/ssl/mydomain.crt:ro \  
    -v /path/to/your/ssl/mydomain.key:/etc/nginx/ssl/mydomain.key:ro \  
    -p 443:443 \  
    nginx

请确保将/path/to/your/…替换为你的实际文件路径。

这个命令会启动一个nginx容器,该容器使用你提供的配置文件和ssl证书/密钥文件。

5.测试https连接

现在,你可以通过在浏览器中访问https://yourdomain.com(注意替换为你的实际域名)来测试https连接。

如果一切设置正确,你应该能够通过https安全地访问你的网站。

注意:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

Ubuntu 24.04 LTS 怎么安装和卸载Docker?

09-14

docker快速搭建私有镜像仓库registry以及registryUI方式

12-20

centos7安装/升级docker和docker compose方式

12-20

通过docker 部署minio的方法(端口号为9105)

12-20

dockerExecute 函数和docker.build的区别解析

12-20

在Ubuntu下通过Docker部署Cloudflared Tunnel服务器

12-30

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论