docker部署nginx并实现https

文章目录

    • docker部署nginx并实现https
      • 1、服务器环境
      • 2、安装docker
      • 3、准备证书
      • 4、准备nginx配置文件和dockerfile文件
      • 5、创建nginx镜像与容器
      • 6、验证访问

docker部署nginx并实现https

1、服务器环境

[root@liuyanfen12 ~]#systemctl stop firewalld
[root@liuyanfen12 ~]#setenforce 0
#关闭防火墙和核心防护

image-20240503185711101

2、安装docker

[root@liuyanfen12 ~]#yum install -y yum-utils device-mapper-persistent-data lvm2
#安装依赖包
[root@liuyanfen12 ~]#yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#设置阿里云镜像源
[root@liuyanfen12 ~]#yum install -y docker-ce docker-ce-cli containerd.io
#安装Docker-CE(社区版)
[root@liuyanfen12 ~]#systemctl enable --now docker.service
#开机自启并立即启动
[root@liuyanfen12 ~]#systemctl status docker.service
#查看状态

image-20240503185922419

image-20240503190029727

image-20240503190127810

3、准备证书

[root@liuyanfen12 ~]#mkdir /opt/nginx -p
#创建目录
[root@liuyanfen12 ~]#cd /opt/nginx/
#切换
[root@liuyanfen12 nginx]#ls
[root@liuyanfen12 nginx]#vim certificate.sh
#编辑证书脚本
CA_SUBJECT="/O=luck/CN=ca.luck.com"
SUBJECT="/C=CN/ST=js/L=nj/O=luck/CN=www.luck.com"
SERIAL=34
EXPIRE=202002
FILE=luck.comopenssl req  -x509 -newkey rsa:2048 -subj $CA_SUBJECT -keyout ca.key -nodes -days 202002 -out ca.crtopenssl req -newkey rsa:2048 -nodes -keyout ${FILE}.key  -subj $SUBJECT -out ${FILE}.csropenssl x509 -req -in ${FILE}.csr  -CA ca.crt -CAkey ca.key -set_serial $SERIAL  -days $EXPIRE -out ${FILE}.crtchmod 600 ${FILE}.key ca.key
--------------------------------------------------------------------------------------------------------
#openssl req  -x509 -newkey rsa:2048 -subj $CA_SUBJECT -keyout ca.key -nodes -days 202002 -out ca.crt
-x509: 生成自签名的证书,而不是生成 CSR(证书签名请求)。
-newkey rsa:2048: 使用 RSA 算法生成一个新的密钥对,密钥长度为2048位。
-subj $CA_SUBJECT: 指定证书的主体信息,这里是定义的 CA 主体信息。
-keyout ca.key: 指定生成的私钥文件名为 ca.key。
-nodes: 创建的私钥不加密,即没有密码保护。
-days $EXPIRE: 设置证书有效期,这里是到2020年2月。
-out ca.crt: 指定生成的自签名CA证书文件名为 ca.crt
--------------------------------------------------------------------------------------------------------
#openssl req -newkey rsa:2048 -nodes -keyout ${FILE}.key  -subj $SUBJECT -out ${FILE}.csr
-newkey rsa:2048: 同上,创建一个新的RSA密钥对。
-keyout ${FILE}.key: 生成的服务器私钥文件名为 ${FILE}.key,此处为 kgc.com.key。
-subj $SUBJECT: 指定服务器证书的主体信息。
-out ${FILE}.csr: 生成的证书签名请求文件名为 ${FILE}.csr,此处为 kgc.com.csr。
--------------------------------------------------------------------------------------------------------
#openssl x509 -req -in ${FILE}.csr  -CA ca.crt -CAkey ca.key -set_serial $SERIAL  -days $EXPIRE -out
-req: 表明接下来的操作是基于一个证书请求文件。
-in ${FILE}.csr: 指定要使用的证书请求文件,即之前生成的 kgc.com.csr。
-CA ca.crt: 指定签发证书的CA证书文件,即第一步生成的 ca.crt。
-CAkey ca.key: 指定CA的私钥文件,用于签署新的证书。
-set_serial $SERIAL: 指定新证书的序列号。
-days $EXPIRE: 设置服务器证书的有效期。
-out ${FILE}.crt: 生成的服务器证书文件名为 ${FILE}.crt,此处为 kgc.com.crt。
--------------------------------------------------------------------------------------------------------
#chmod 600 ${FILE}.key ca.key
chmod 600: 改变文件权限,使其只有所有者有读写权限,增强安全性。
${FILE}.key 和 ca.key: 分别指服务器私钥和CA私钥文件,确保它们的访问权限受限
--------------------------------------------------------------------------------------------------------[root@liuyanfen12 nginx]#chmod +x certificate.sh
#添加权限
[root@liuyanfen12 nginx]#./certificate.sh
#运行
Generating a 2048 bit RSA private key
..........................................................................................................+++
.................+++
writing new private key to 'ca.key'
-----
Generating a 2048 bit RSA private key
.....................+++
..+++
writing new private key to 'luck.com.key'
-----
Signature ok
subject=/C=CN/ST=js/L=nj/O=luck/CN=www.luck.com
Getting CA Private Key[root@liuyanfen12 nginx]#ls
ca.crt  ca.key  certificate.sh  luck.com.crt  luck.com.csr  luck.com.key
[root@liuyanfen12 nginx]#cat luck.com.crt ca.crt > www.luck.com.crt
#使用cat命令将luck.com.crt和ca.crt两个文件的内容合并到一个新文件www.luck.com.crt中,这样做的目的是为了组合服务器证书和CA证书,使得Nginx或任何其他Web服务器能够通过单一文件提供完整的证书链给客户端,以便正确验证服务器证书
[root@liuyanfen12 nginx]#mv luck.com.key www.luck.com.key
#使用 mv 命令重命名luck.com.key为www.luck.com.key 为了与上面合并后的证书文件保持名称一致性,或者准备为www.dlsockerng.com子域名服务使用同一密钥对
[root@liuyanfen12 nginx]#ls
ca.crt  ca.key  certificate.sh  luck.com.crt  luck.com.csr  www.luck.com.crt  www.luck.com.key

image-20240503195855051

image-20240503200039116

4、准备nginx配置文件和dockerfile文件

[root@liuyanfen12 nginx]#ls
#上传nginx安装包,准备nginx.conf和Dockerfile文件
ca.crt  certificate.sh  luck.com.crt  nginx-1.12.0.tar.gz  www.luck.com.crt
ca.key  Dockerfile      luck.com.csr  nginx.conf           www.luck.com.key#编辑dockerfile脚本
[root@liuyanfen12 nginx]#vim Dockerfile
FROM centos:7
MAINTAINER this is nginx image <nginx>
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make openssl openssl-devel
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.0.tar.gz /usr/local/src/
WORKDIR /usr/local/src/nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
#加载ngx_http_ssl_module模块,该模块是处理SSL/TLS连接所必需的
--with-http_stub_status_module;make -j4 && make install
ENV PATH /usr/local/nginx/sbin:$PATH
ADD nginx.conf /usr/local/nginx/conf/nginx.conf
ADD www.luck.com.crt /usr/local/nginx/conf/
ADD www.luck.com.key /usr/local/nginx/conf/
EXPOSE 80
EXPOSE 443
CMD [ "/usr/local/nginx/sbin/nginx","-g","daemon off;" ][root@liuyanfen12 nginx]#vim nginx.conf
#修改nginx.conf配置文件,在server模块中添加配置(35行-42行)server {listen       80;listen 443 ssl;ssl_certificate /usr/local/nginx/conf/www.luck.com.crt;ssl_certificate_key /usr/local/nginx/conf/www.luck.com.key;ssl_session_cache shared:sslcache:20m;ssl_session_timeout 10m;server_name  localhost;
--------------------------------------------------------------------------------------------------------
listen 443 ssl;
#这行指定Nginx监听443端口,并启用SSL支持。Web浏览器默认通过443端口建立HTTPS连接
ssl_certificate /usr/local/nginx/conf/www.dockerng.com.crt;
#指定SSL证书文件的路径,这个路径指向合并了服务器证书和CA证书链的文件(如果适用),以
#便客户端在验证服务器身份时使用。
ssl_certificate_key /usr/local/nginx/conf/www.dockerng.com.key;
#指定与上述证书匹配的私钥文件路径。此私钥用于加密和解密服务器与客户端之间的通信内容
ssl_session_cache shared:sslcache:20m;
#配置一个共享的SSL会话缓存,大小为20MB。该缓存可以提高性能,通过复用已存在的SSL会话
#信息来减少重新协商和加密操作的开销
ssl_session_timeout 10m;
#设置SSL会话超时时间为10分钟。这意味着,在无活动期间达到这个时间长度后,客户端必须与
#服务器重新建立新的SSL会话或者恢复先前的会话(如果仍然有效)。这个值可以根据实际需求调
#整以平衡安全性与性能。
--------------------------------------------------------------------------------------------------------

image-20240503195321818

image-20240503195114699

image-20240503194954794

5、创建nginx镜像与容器

[root@liuyanfen12 ~]#docker pull centos:7
#拉取基础镜像centos:7
[root@liuyanfen12 ~]#docker images
#查看基础镜像信息
[root@liuyanfen12 nginx]#docker  build -t nginx:centos .
#生成镜像
[root@liuyanfen12 nginx]#docker images
#显示镜像信息
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginx        centos    c3f56b07162d   25 seconds ago   592MB
centos       7         eeb6ee3f44bd   2 years ago      204MB
[root@liuyanfen12 nginx]#docker run -d --name nginx -p 80:80 -p 443:443 nginx:centos
#创建容器并指定映射端口
618a521cf19a57ada8db2769b38fafcd2b09ff0065c2aa879ca7aed5c3fdd779
[root@liuyanfen12 nginx]#docker ps -a
#显示所有容器信息
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS         PORTS                                                                      NAMES
618a521cf19a   nginx:centos   "/usr/local/nginx/sb…"   4 seconds ago   Up 3 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   nginx

image-20240503191325193

image-20240503194658647

image-20240503192941835

6、验证访问

https://192.168.10.12/
#使用浏览器访问验证

image-20240503185215549

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/319467.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WORD排版常见问题与解决方案

前言 近期使用word软件进行论文排版工作&#xff0c;遇到了一些常见的问题&#xff0c;记录一下&#xff0c;避免遗忘。 基本配置 系统环境&#xff1a;win10/win11 word版本&#xff1a;Microsoft Office LTSC 专业增强版 2021 问题与解决方案 问题1&#xff1a;页眉显示内…

【STM32F407+CUBEMX+FreeRTOS+lwIP netconn UDP TCP记录】

STM32F407CUBEMXFreeRTOSlwIP netconn UDP TCP记录 注意UDPUDP1UDP2 TCPTCP clientTCP server图片 注意 1、超时 #include “lwipopts.h” #define LWIP_SO_RCVTIMEO 12、先保证能ping通 3、关于工程创建可参考 【STM32F407CUBEMXFreeRTOSlwIP之UDP记录】 4、…

C语言之数据结构之栈和队列的运用

目录 1. 用队列实现栈1.1 思路讲解1.2 代码实现 2. 用栈实现队列1.1 思路讲解1.2 代码实现 总结 •͈ᴗ•͈ 个人主页&#xff1a;御翮 •͈ᴗ•͈ 个人专栏&#xff1a;C语言数据结构 •͈ᴗ•͈ 欢迎大家关注和订阅!!! 1. 用队列实现栈 题目描述&#xff1a; 请你仅使用两个…

恶补《操作系统》5_2——王道学习笔记

5.2_1 I-O核心子系统 1、用户层软件 假脱机系统 2、设备独立性软件&#xff08;设备无关性软件&#xff09; IO调度、设备保护、设备分配与回收、缓冲区管理 3、设备驱动程序&#xff08;比如打印机驱动&#xff09; 4、中断处理程序 5、硬件 5.2_2 假脱机技术&#xff…

小程序引入 Vant Weapp 极简教程

一切以 Vant Weapp 官方文档 为准 Vant Weapp 官方文档 - 快速入手 1. 安装nodejs 前往官网下载安装即可 nodejs官网 安装好后 在命令行&#xff08;winr&#xff0c;输入cmd&#xff09;输入 node -v若显示版本信息&#xff0c;即为安装成功 2. 在 小程序根目录 命令行/终端…

www.fastssh.com SSH over WebSockets with CDNs

https://www.fastssh.com/page/create-ssh-cdn-websocket/server/这其实不是标准的websocket报文(服务器响应报文无Sec-Websocket-Accept字段)&#xff0c;所以无法使用github.com/gorilla/websocket包&#xff1a;GET / HTTP/1.1 Host: hostname:8080 User-Agent: Go-http-cli…

jvm重要参数可视化和线上问题排查

jvm重要参数可视化和线上问题排查 目标jvm参数分类(了解)运行时数据区相关的&#xff08;jdk1.8&#xff09;处理 OOM 相关的垃圾回收器相关的GC 日志记录相关的意义,默认值,调优原则&#xff08;重要&#xff0c; 待拆分&#xff09; 排查 OOM 流程 和 常见原因参考文章 目标 …

【除了协程还有哪些方式可以实现异步编程】

在Unity中&#xff0c;除了使用协程实现异步编程外&#xff0c;还有以下几种方法&#xff1a; 异步加载资源&#xff1a; 使用UnityWebRequest类进行异步加载资源&#xff0c;这在加载网络资源或动态加载资源时非常有用。 using UnityEngine; using UnityEngine.Networking;…

基于OpenCv的图像特征点检测

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

C语言/数据结构——(用双链表实现数据的增删查改)

一.前言 嗨嗨嗨&#xff0c;大家好久不见&#xff01;前面我们已经通过数组实现数据的增删查改、单链表实现数据的增删查改&#xff0c;现在让我们尝试一下使用双链表实现数据的增删查改吧&#xff01; 二.正文 如同往常一样&#xff0c;对于稍微大点的项目来说&#xff0c;…

【工程记录】Python爬虫入门记录(Requests BeautifulSoup)

目录 写在前面1. 环境配置2. 获取网页数据3. 解析网页数据4. 提取所需数据4.1 简单提取4.2 多级索引提取 5. 常见问题 写在前面 仅作个人学习与记录用。主要整理使用Requests和BeautifulSoup库的简单爬虫方法。在进行数据爬取时&#xff0c;请确保遵守相关法律法规和网站的服务…

FLIR LEPTON3.5 热像仪wifi 科研实验测温采集仪

点击查看详情!点击查看详情点击查看详情点击查看详情点击查看详情点击查看详情点击查看详情点击查看详情点击查看详情点击查看详情点击查看详情点击查看详情点击查看详情点击查看详情点击查看详情 1、描述 这是一款桌面科研实验测温热成像多功能热像记录仪&#xff0c;小巧轻便…

SFOS1:开发环境搭建

一、简介 最近在学习sailfish os的应用开发&#xff0c;主要内容是QmlPython。所以&#xff0c;在开发之前需要对开发环境&#xff08;virtualBox官方SDKcmake编译器python&#xff09;进行搭建。值得注意的是&#xff0c;我的开发环境是ubuntu22.04。如果是windows可能大同小异…

带文字海报流程自动化

上一篇文章&#xff1a; 带文字海报流程自动化 - 知乎 项目代码整理在&#xff1a; https://github.com/liangwq/Chatglm_lora_multi-gpu​github.com/liangwq/Chatglm_lora_multi-gpu 根据用户的输入生成图片prompt模块代码封装&#xff1a; from openai import OpenAI im…

获取淘宝商品销量数据接口

淘宝爬虫商品销量数据采集通常涉及以下几个步骤&#xff1a; 1、确定采集目标&#xff1a;需要明确要采集的商品类别、筛选条件&#xff08;如天猫、价格区间&#xff09;、销量和金额等数据。例如&#xff0c;如果您想了解“小鱼零食”的销量和金额&#xff0c;您需要设定好价…

【云原生系列】云计算概念与架构设计介绍

1 什么是云计算 云计算是一种基于互联网的计算模式&#xff0c;在这个模式下&#xff0c;各种计算资源&#xff08;例如计算机、存储设备、网络设备、应用程序等&#xff09;可以通过互联网实现共享和交付。云计算架构设计的主要目标是实现高效、可扩展、可靠、安全和经济的计算…

C++多态特性详解

目录 概念&#xff1a; 定义及实现&#xff1a; 虚函数重写的两个例外&#xff1a; 1.协变&#xff1a; 2.析构函数的重写&#xff1a; final关键字&#xff1a; override关键字&#xff1a; 多态是如何实现的&#xff08;底层&#xff09;&#xff1a; 面试题&#xff1…

idea No versioned directories to update were found

idea如何配置svn以及svn安装时需要注意什么 下载地址&#xff1a;https://112-28-188-82.pd1.123pan.cn:30443/download-cdn.123pan.cn/batch-download/123-820/3ec9445a/1626635-0/3ec9445a25ba365a23fc433ce0c16f34?v5&t1714358478&s171435847804276f7d9249382ba512…

代码随想录算法训练营DAY40\DAY41|C++动态规划Part.3|343.整数拆分、96.不同的二叉搜索树

DAY40休息日&#xff0c;本篇为DAY41的内容 文章目录 343.整数拆分思路dp含义递推公式&#xff08;难点&#xff09;初始化遍历顺序打印 CPP代码数学方法归纳证明法 96.不同的二叉搜索树思路dp含义递推公式初始化遍历顺序打印 CPP代码题目总结 343.整数拆分 力扣题目链接 文章…

小蓝本--因式分解(习题1)讲解

这几天要备战期中&#xff0c;下一期可能要等暑假了...... 小升初的压力真是紧扣于头啊&#xff0c;为了分到一个好班&#xff0c;拼了&#xff01; 对了&#xff0c;下一期可能在寒假更&#xff0c;见谅&#xff01; 1分解因式&#xff1a; 公因式&#xff1a; 答案&#xff…