配置证书443访问 -- 集成框架

配置证书443访问

  • 前言
  • 正文
    • 步骤1: 准备证书
    • 基于Nginx镜像

前言

由于业务要求需要对当前网络请求服务器不走80端口,进行443 https证书访问。

文档有点丑见谅,我还没加样式

正文

要让运行在Docker容器中的前端应用在443端口上使用SSL/TLS证书,通常需要两部分:用于服务的SSL/TLS证书(通常是一个.crt文件和一个.key文件),以及在容器中配置这些证书并在443端口上提供服务的Web服务器(比如Nginx, Apache等)由于我是通过Dockerfile所以我直接集成到了Niginx

大致流程

步骤1: 准备证书

获取SSL/TLS证书。 如果你还没有证书,可以从认证机构(CA)获取,或者使用Let’s Encrypt免费生成一个,或者自己创建一个自签名的证书(自签名证书在生产环境中不推荐使用)。

证书文件。 一般来说,你会有两个重要的文件:

  • 一个是证书文件(比如your_domain.crt)
  • 另一个是私钥文件(比如your_domain.key)。

步骤2: 准备Dockerfile和Web服务器配置
编写Dockerfile。 创建或更新你的Dockerfile,包括安装Web服务器(比如Nginx)的步骤,以及添加用来配置Web服务器运行在443端口上并使用SSL证书的配置文件。

配置Web服务器。 根据你的Web服务器(假设使用Nginx为例),你需要一个配置文件(比如称为your_site.conf),在这个文件中,配置服务器监听443端口,并指定证书和私钥文件的位置。

示例的Nginx配置片段:

server {listen 443 ssl;server_name your_domain.com;ssl_certificate /etc/nginx/ssl/your_domain.crt;ssl_certificate_key /etc/nginx/ssl/your_domain.key;location / {index  index.html index.htm;}
}

修改Dockerfile。 将证书和私钥文件复制到容器内的某个位置,并确保Web服务器配置文件也被复制并使用。我的Nginx大致这样:

Dockerfile 示范:

基于Nginx镜像

FROM nginx:alpineCOPY ./path/to/your_domain.crt /etc/nginx/ssl/your_domain.crt
COPY ./path/to/your_domain.key /etc/nginx/ssl/your_domain.key
COPY ./path/to/your_site.conf /etc/nginx/conf.d/default.conf
COPY ./path/to/your_frontend_build /usr/share/nginx/html

生成自签名SSL证书的常用工具是openssl。这种证书主要用于测试目的,不建议在生产环境中使用,如果要用生产上面,阿里云有20个免费的证书,大家可以去了解一下,因为客户端浏览器会警告用户这种证书不受信任。下面是我如何使用openssl生成自签名证书的步骤:

生成私钥
首先,使用以下命令生成一个私钥(yourdomain.key):

openssl genrsa -out yourdomain.key 2048

此命令生成一个2048位的 RSA 私钥。

生成证书签名请求(CSR)
使用私钥生成一个证书签名请求(CSR):

openssl req -new -key yourdomain.key -out yourdomain.csr

在执行此命令的过程中,你会被提示输入证书的信息,比如国家、城市、组织名和常用名(Common Name)等。常用名应该是你的域名或服务器的IP地址,也可以不填写直接确认继续。

生成自签名SSL证书,然后,利用CSR和私钥生成自签名的SSL证书(yourdomain.crt),此证书有效期为1年(365天) 自己设置时间

openssl req -x509 -nodes -days 365 -key yourdomain.key -in yourdomain.csr -out yourdomain.crt

使用以上指令后,你将得到两个文件:yourdomain.crt和yourdomain.key。这两个文件分别是你的SSL证书和私钥。

当你有了证书和私钥后,可以在你的web服务器(如nginx或apache)配置中使用它们以启用HTTPS。记得将证书和私钥文件放在服务器上的安全位置,步骤如上,封装到docker容器里面最保险,同时更新web服务器的配置文件,指向正确的证书文件(yourdomain.crt)和私钥文件(yourdomain.key)。

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

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

相关文章

【x264】编码核心函数(x264_encoder_encode)的简单分析

【x264】编码模块(x264_encoder_encode)简单分析 1.编码帧函数(x264_encoder_encode)1.1 拷贝一帧并移动到buffer中(x264_frame_pop_unused)1.2 拷贝一帧送入队列用于确定帧类型(x264_lookahead…

EC2 Linux 开机自启脚本:必要性和实现

在 Amazon EC2 Linux 实例上配置开机自启脚本是一个常见的需求。这种自启动脚本具有重要的实践意义,主要体现在以下几个方面: 必要性 服务自动启动 当 EC2 实例启动时,可以自动启动一些关键服务,如 Web 服务、数据库服务等,而不需要手动去启动。这有助于提高服务的可用性和可靠…

GeoScene产品学习视频收集

1、易智瑞运营的极思课堂https://www.geosceneonline.cn/learn/library 2、历年易智瑞技术公开课视频资料 链接:技术公开课-易智瑞信息技术有限公司,GIS/地理信息系统,空间分析-制图-位置智能-地图 3、一些关于GeoScene系列产品和技术操作的视…

Unity2024面试总结(适用3-5年经验以上)

文章目录 前言一、基础芝士1、说下你对面向对象的理解2、说下协程和线程的区别3、说下内存优化这块内容4、说下GPU优化这块内容5、说下对DrawCall的理解6、向量的点乘、叉乘7、数据结构、算法 二、进阶芝士1、框架与核心模块2、说下你在项目中使用过的设计模式3、架构思想4、如…

二进制部署k8s集群 部署高可用master节点

目录 本次部署的环境 一、master02 节点部署 二、负载均衡部署 安装nginx服务 部署keepalive服务 修改node节点上的配置文件 在master节点上创建pod 三、部署 Dashboard 二进制部署k8s集群部署的步骤总结 (1)k8s的数据存储中中心的搭建 etcd &…

Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)

漏洞复现环境搭建请参考 http://t.csdnimg.cn/MxmId 漏洞版本 Apache Log4j 2.8.2之前的2.x版本 漏洞验证 (1)开放端口4712 漏洞利用 (1)ysoserial工具获取 wget https://github.com/frohoff/ysoserial/releases/download/v0…

Flink DataStream API 基础算子(一)

一、介绍 官网 DataStream API 得名于特殊的 DataStream 类,该类用于表示 Flink 程序中的数据集合。你可以认为 它们是可以包含重复项的不可变数据集合。这些数据可以是有界(有限)的,也可以是无界(无限)的…

spring启动后自动退出了

在项目中启动spring框架的application,但是还未等到接口访问它就自己退出了,运行截图如下所示: 解决办法: 将build.gradle文件里的依赖修改一下。我原先的依赖是: org.springframework:spring-web:5.3.10 现修改为 …

2024 电工杯高校数学建模竞赛(B题)| 平衡膳食食谱 |建模秘籍文章代码思路大全

铛铛!小秘籍来咯! 小秘籍团队独辟蹊径,运用负载均衡,多目标规划等强大工具,构建了这一题的详细解答哦! 为大家量身打造创新解决方案。小秘籍团队,始终引领着建模问题求解的风潮。 抓紧小秘籍&am…

2024-05-20 问AI:介绍一下大语言模型的in-context learning

文心一言 大语言模型的in-context learning(ICL)是指模型在不进行参数更新的情况下,仅通过少量示例或指令,快速适应新的任务和领域的能力。 传统的机器学习方法通常需要大量的标注数据来训练模型,而ICL的出现为我们提…

肯尼亚大坝决堤反思:强化大坝安全监测的必要性

一、背景介绍 近日,肯尼亚发生了一起严重的大坝决堤事件。当地时间4月29日,肯尼亚内罗毕以北的一座大坝决堤,冲毁房屋和车辆。当地官员称,事故遇难人数已升至71人。这起事件再次提醒我们,大坝安全无小事,监…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-23.1,2 讲 I2C驱动

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

C#一些高级语法

目录 C# 特性(Attribute) 规定特性(Attribute) 预定义特性(Attribute) AttributeUsage Obsolete 创建自定义特性(Attribute) 声明自定义特性 构建自定义特性 C# 反射&#…

【AI】如何用非Docker方法安装类GPT WebUI

【背景】 本地LLM通信的能力需要做成局域网SAAS服务才能方便所有人使用。所以需要安装WebUI,这样既有了用户界面,又做成了SAAS服务,很理想。 【问题】 文档基本首推都是Docker安装,虽然很多人都觉得容器多么多么方便&#xff0…

了解区块链基础设施,共同构建安全且强大的Sui网络

区块链基础设施的范畴很广,但其核心是那些直接与网络互动的计算机。这些实体通常被称为节点,分为不同的类型,例如维护完整区块链副本的全节点,以及作为共识决定者的验证节点。除了这两种类型之外,还有其他类型的节点&a…

【oracle的安装记录】

oracle安装记录 一、下载以后,解压到同一路径下面 二、双击可执行安装文件,等待文件加载 三、双击以后,弹出信息 四、提示该窗口,点击【是】即可 五、未填写配置安全更新信息 六、弹出小窗口,选择【是】 七、安装选项…

golang一键打包macos, linux, windows 应用程序 shell脚本

golang一键打包各个平台可执行应用程序shell脚本, 可自定义输出文件名,自动一键打包3大平台可执行应用程序。废话不多说,直接上代码: #!/bin/sh ################################## # 生成各个平台下的可执行程序 golang一键打包…

SQLI-labs-第二十四关

目录 1、登录界面 2、注册界面 3、修改密码界面 知识点:二次注入 思路: 这一关有几个页面可以给我们输入,一个登录界面,一个注册页面,一个修改密码界面 1、登录界面 首先我们登录界面看看 登录后出现一个修改密码…

对字符串的处理:比较是否相同,copy对象属性,copy列表list

系列文章目录 //1.copy list对象 List<User> usersnew ArrayList<>(); List<Person> persons BeanUtil.copyToList(users, Person.class);//2.比较两个listpublic static void main(String[] args) {List<Person> list1 Arrays.asList(new Person(&qu…

【MySQL精通之路】InnoDB配置(8)-缓存池配置

本节提供InnoDB缓冲池的配置和调优信息。 1 配置InnoDB缓冲池大小 当增加或减少innodb_buffer_pool_size时&#xff0c;操作是分块执行的 区块大小由innodb_buffer_pool_chunk_size 配置选项定义&#xff0c;默认值为128M。 缓冲池大小必须始终等于或等于&#xff08;n倍于 …