docker nginx ssl设置

这篇具有很好参考价值的文章主要介绍了docker nginx ssl设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用docker运行nginx,配置代理,和ssl设置,进行https访问

一 准备

本次在centos环境中

1.已安装docker,docker-compose

2.运行了一个后端服务容器,提供基本的接口访问【可选】

3.一个域名(已经解析到服务器上)【必要】

4.ssl证书【必要】

二 ssl证书下载

使用阿里云免费证书

登陆阿里云管理控制台,搜索 数字证书管理服务 ,进入证书管理

docker nginx ssl设置,其它,docker,nginx,ssl,https

 点击左侧ssl证书,进入,点击免费证书,点击创建证书

docker nginx ssl设置,其它,docker,nginx,ssl,https

 创建后,点击证书申请

docker nginx ssl设置,其它,docker,nginx,ssl,https

填写内容,进行申请 

通过后,点击下载,选择nginx项

docker nginx ssl设置,其它,docker,nginx,ssl,https

 docker nginx ssl设置,其它,docker,nginx,ssl,https

 

下载完成后上传至服务器,解压后有两个文件,分别以pem和key后缀

三 docker 容器间通信网络

由于nginx和服务都是运行在docker中,为了更好的进行容器间通信,使用docker的网络

docker network create --driver bridge --subnet 172.30.1.0/24 --gateway 172.30.1.1 my_net
# my_net 自定义网络名称

创建好一个网络后,查看 docker network list

[root@k8s-work2 men]# docker network list
NETWORK ID     NAME                   DRIVER    SCOPE
87c6a3cc05f4   bridge                 bridge    local
06441e9ed2b7   harbor_harbor          bridge    local
c1e749a2cfe9   host                   host      local
d09d714a1054   menstruation_default   bridge    local
bf99db8fc21e   my_net                 bridge    local
8a50da08ea68   my_network             bridge    local
042f6ecb737f   none                   null      local

创建容器时指定使用网络,参照4.3

四 nginx 

4.1 拉取镜像

docker pull nginx

4.2 创建配置文件

创建一个文件夹conf,增加一个文件nginx.conf,作为nginx的配置文件

其中后端服务的ip为自定义固定的,也可以使用后端服务容器名称【需要创建该容器时加入 三 中的网络】

events {
          
   
    worker_connections  1024;
}


http {
          
   
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    client_max_body_size 50m;

        server{
          
   
                listen       80;
                server_name  服务器ip;
                location = /favicon.ico {
                        access_log off;
                        log_not_found off;
                }
                location / {
          
                        proxy_pass http://172.30.1.8:8080/; # 后端服务ip接口
                }
        }
        server{


                listen       80;
                server_name  域名;
                # 过滤请求
                location = /favicon.ico {
                        access_log off;
                        log_not_found off;
                }
                location / {

                        proxy_pass http://172.30.1.8:8080/; # 后端服务ip接口
                }
        }
        server {
                listen 443 ssl;
                server_name 域名;
                ssl_certificate /etc/nginx/certs/xxx.pem; # 证书文件
                ssl_certificate_key /etc/nginx/certs/xxx.key; # 证书文件
                ssl_session_timeout 5m;
                ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
                 #表示使用的加密套件的类型。
                 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 表示使用的TLS协议的类型。
                 ssl_prefer_server_ciphers on;
                location / {
                        proxy_pass http://172.30.1.8:8080/; # 后端服务ip接口
                }

        }

}

4.3 docker-compose.yaml

创建一个文件夹存放docker-compose.yaml

version: "3"
services:
  nginx:
    image: nginx #镜像名称
    container_name: nginx #容器名称
    stdin_open: true
    tty: true
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - /usr/local/nginx/docker/certs:/etc/nginx/certs #将服务器上保存证书的目录挂载到nginx容器中
      - /usr/local/nginx/docker/logs:/var/log/nginx #挂载日记
      - /usr/local/nginx/docker/conf/nginx.conf:/etc/nginx/nginx.conf #挂载配置文件
    privileged: true
    networks:
      my_net:
          ipv4_address: 172.30.1.3 #固定ip
    environment:
      - SSL_CERT_PATH=/etc/nginx/certs/xxx.pem #证书名
      - SSL_KEY_PATH=/etc/nginx/certs/x.key #证书名
networks:
  my_net:
    external: true

4.4 运行

docker-compose up -d

五 验证

在浏览器中访问 https://域名/records/all/1,返回后端服务/records/all/1返回内容

并且有https图标

docker nginx ssl设置,其它,docker,nginx,ssl,https

 

如果没有返回,则需查看logs文件夹下的日志内容,具体定位问题所在文章来源地址https://www.toymoban.com/news/detail-649231.html

到了这里,关于docker nginx ssl设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 配置https---Nginx认证ssl证书

    nginx作为前端的负载均衡服务器已经很熟悉了,项目需要使用https安全的时候就需要认证证书了 dockerweb管理工具 Portainer 如果对docker不那么熟悉可以使用docker 第三方管理端 然后访问本地9000端口,登录后可以管理容器镜像 有了该工具可以直接进入容器查看日志等操作 nginx环境安装

    2024年01月19日
    浏览(41)
  • nginx配置ssl证书使用https访问

    一:申请证书,我使用的是阿里云免费证书 二:下载证书,解压到服务器上 两个文件:www.xx.com.pem和www.xx.com.key 三:打开配置文件/usr/local/nginx/conf/nginx.conf 放开端口443,替换ssl_certificate和ssl_certificate_key为自己证书路径    server {         listen       443 ssl;         server_na

    2024年01月20日
    浏览(47)
  • 什么是HTTPS加密协议?HTTPS安全传输原理,SSL和TLS介绍,NGINX如何配置SSL证书

    HTTPS是超文本传输协议(HTTP)的安全版本。它使用SSL(安全套接层)或TLS(传输层安全)加密协议来保护数据传输的安全性和机密性,以防止未经授权的访问和窃听。HTTPS协议通常用于处理敏感信息,如在线支付或登录凭证等。可以通过URL的前缀来识别一个网站是否使用了H

    2024年02月03日
    浏览(38)
  • nginx配置ssl支持https的详细步骤

    文章概要 :在建站的时候我们通常要让网站通过https进行访问,不然使用http过程中,所有信息都是未加密的,并且用户访问的时候浏览器会屏蔽我们的网站。本文介绍如何通过nginx配置ssl以支持通过https协议访问网站。 本文内容来自:谷流仓AI - ai.guliucang.com 打开nginx.conf配置

    2024年03月28日
    浏览(43)
  • Nginx配置ssl证书实现https安全访问

    目录 一、Nginx的安装与配置 安装步骤 二、SSL证书获取 三、Nginx配置 前题条件,拥有服务器与可以解析到该服务器的自己的域名。 若已安装好了Nginx,则需查看自己的Nginx是否开启了SSL的模块功能:  显示如上,则代表ssl功能已开启,否则可能出现以下错误提示: nginx: [emer

    2024年02月15日
    浏览(29)
  • Nginx 配置SSL,开放https协议和443端口

    目录 一、准备工作 二、生成私钥(key) 三、生成证书签名请求/公钥(csr) 四、生成证书(crt) 五、给nginx配证书 六、访问测试 阅读本文前您需要学会如何安装Nginx, 如果您还不会安装Nginx请参考CentOS7安装Nginx,或者直接关注本栏目Nginx。         如果是在Windows下,请

    2024年02月04日
    浏览(32)
  • Linux配置Nginx SSL支持Https配置教程

    继承上篇 Linux安装Nginx 执行: ./nginx -V 命令 如果有输出 --–with-http_ssl_module 则说明已安装好SSL模块 进入安装目录 /usr/local/nginx-1.22.1 执行安装命令: ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 执行编译命令: make 注意:make成功后不要执行 make insta

    2024年01月18日
    浏览(32)
  • 配置SSL证书后,Nginx的HTTPS 不能正常

    申请ssl证书,配置nginx支持https与证书,可是访问https的nginx总是出现错误,也导致小程序发https请求失败,这是什么原因呢? 如果在配置SSL证书后,Nginx的HTTPS无法正常工作,可能有以下几个常见原因: 1、证书配置错误: 证书文件路径出现错误或不存在;文件格式错误;证书

    2024年02月03日
    浏览(34)
  • 【基础篇】Nginx安装 SSL模块、配置 HTTPS详细步骤

    nginx安装 1、查看 nginx是否安装 http_ssl_module 模块 如果出现 configure arguments: –with-http_ssl_module, 则已安装(下面的步骤可以跳过,进入 SSL 证书部署、nginx.conf 配置)。 否则按下述执行命令。 2、进入nginx源码包,重新执行下面命令,重新编译安装三部曲 3、上述命令执行完以后

    2023年04月16日
    浏览(49)
  • 【实现HTTPS访问】Nginx + SSL证书 + 域名整合流程详解

    1、购买云服务器 我购买的是 阿里云ECS(2核2G) ,具体购买流程这里不做过多讲解。 注意 :中国大陆的阿里云服务器(套餐为3个月以上),想要使用域名访问服务器需要 备案 ,低于3个月使用期的服务器不可以备案(不可以使用域名访问),我购买的是7天有效期,服务器

    2024年01月22日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包