测试环境:使用OpenSSL生成证书并配置Https

news2024/11/17 16:28:39

文章目录

    • 需求
    • 1、安装OpenSSL
      • 1.1、安装包下载
      • 1.2、安装(以window 64位为例)
      • 1.3、配置环境变量(非必须)
    • 2、生成证书
      • 2.1、新建文件夹
      • 2.2、生成根证书
        • 2.2.1、生成私钥
        • 2.2.2、生成根证书,并且自签名
      • 2.3、服务端证书生成
        • 2.3.1、生成私钥
        • 2.3.2、去除key的密码
        • 2.3.3、生成服务端证书
        • 2.3.4、使用根证书进行签名
      • 2.4、客户端证书生成
      • 2.5、证书转换
    • 3、配置Nginx
    • 说明

需求

在调用部分接口或者使用部分组件的场景下,必须在https的环境下才能使用(如:h5调用手机摄像头扫码);但由于只是用于测试,不想花钱买正式的证书;就可以使用该方法,生成一个证书,模拟https环境。

1、安装OpenSSL

1.1、安装包下载

window:
链接:https://pan.baidu.com/s/1HlySuOy4FkzKK_vTOz9ZBg
提取码:07ay

Linux:
链接:https://pan.baidu.com/s/1JDhUCERcqsZw1BoluapJJw
提取码:swwb

1.2、安装(以window 64位为例)

选择 Win64OpenSSL-3_0_0.exe 安装包,正常安装就行,可以存放在指定文件夹
在这里插入图片描述

1.3、配置环境变量(非必须)

安装完成后,可以设置环境变量,也可以不设置环境变量,设置环境变量的好处是:在任意位置通过cmd命令行窗口都可以执行openssl命令,而没有设置环境变量则需要进入OpenSSL安装目录进行命令行的操作

配置方法:右键“此电脑” -> 属性 -> 高级系统设置 -> 高级 -> 环境变量 -> 新建 OPENSSL_HOME -> 添加到Path中
在这里插入图片描述
添加到PATH
在这里插入图片描述

2、生成证书

首先进入cmd 进入openssl的安装目录下的 bin 目录(以配置过环境变量的可以省略这一步)

2.1、新建文件夹

1、openssl安装目录下的bin目录内新建 demoCA文件夹
2、在 demoCA目录内新建 newcerts文件夹、index.text
3、建立一个 serial文件 里面写 01
在这里插入图片描述

2.2、生成根证书

2.2.1、生成私钥

输入以下命令,回车;提示输入密码,我设定的密码是123456,为方便记忆,后面密码都默认是123456,根据自己需求设置就好。

openssl genrsa -des3 -out root.key 1024

在这里插入图片描述
执行完命令后,可以看到openssl安装目录下多了一个root.key文件
在这里插入图片描述

2.2.2、生成根证书,并且自签名
openssl req -new -x509 -key root.key -out root.crt -config openssl.cfg

回车后,提示需要部分信息,该部分信息照着抄就行,没有二次校验的过程,自己随便填,但是填写域名的位置尽量真实点;因为我后面是用的ip,所以域名我也是随便填写的。填写完成后,需要记住,后面生成其他证书文件的时候,需要保持一致性,不然还是会失败。
在这里插入图片描述
填写完成后,会生成一个root.crt文件
在这里插入图片描述

2.3、服务端证书生成

生成的证书需要配置到Nginx或者Apache HttpServer

2.3.1、生成私钥
openssl genrsa -des3 -out server.key 1024
2.3.2、去除key的密码

为什么要去除server.key的密码呢?这边不是去除而是代表这个证书在被应用程序启动时不需要显示的提示用户输入口令,否则启动Nginx是需要我们输入密码(如图)。

openssl rsa -in server.key -out server.key

在这里插入图片描述

2.3.3、生成服务端证书

接下来生成证书,同样也会提示输入密码,和上面一样,默认123456就行;需要输入信息,切记和2.2.2保持一致,不然会生成失败。正常情况会生成两个文件,一个server.key 一个server.csr 。

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

在这里插入图片描述
在这里插入图片描述

2.3.4、使用根证书进行签名

使用root.crt和root.key给server.csr进行签名

openssl ca -in server.csr -out server.crt -cert root.crt -keyfile root.key -config openssl.cfg

在这里插入图片描述
在这里插入图片描述再次查看已经生成了server.crt文件了
在这里插入图片描述

2.4、客户端证书生成

openssl genrsa -des3 -out client.key 1024 

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

openssl ca -in client.csr -out client.crt -cert root.crt -keyfile root.key -config openssl.cfg

在这里插入图片描述

2.5、证书转换

openssl pkcs12 -export -in server.crt -inkey server.key

3、配置Nginx

打开nginx.cnf 找到 HTTPS server

# HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  www.kanyun.cpa.cn;

        ssl_certificate      ../cert/server.crt;
        ssl_certificate_key  ../cert/server.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   F:\cpaweb\dist;
            index  index.html index.htm;
        }
    }

刚才生成的证书文件和key的位置,要写相对路径,建议将这两个文件放到nginx配置文件的同级目录,写绝对路径可能会报错

说明

证书类别 :

  • 根证书 生成服务器证书,客户端证书的基础。自签名。
  • 服务器证书 由根证书签发。配置在服务器上。
  • 客户端证书 由根证书签发。配置在服务器上,并发送给客户,让客户安装在浏览器里。

注意点:

  1. 服务器证书的cn要和server_name一致,否则启动httpd时有警告。
  2. 浏览器安装客户端证书时,需要用pkcs12转换成pfx格式,否则可以安装但无效。
  3. 把根证书安装到浏览器的受信CA中,访问服务器时就不会出警告了。

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

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

相关文章

2-4 Softmax 回归的从零开始实现

就像我们从零开始实现线性回归一样, 我们认为softmax回归也是重要的基础,因此应该知道实现softmax回归的细节。 本节我们将使用刚刚在2-3节中引入的Fashion-MNIST数据集, 并设置数据迭代器的批量大小为256。 import torch from IPython impo…

Python 编程高手必会的10个单行代码:一招鲜,吃遍天

大家好,在Python编程中,我们时常需要高效、简洁的代码来解决复杂的问题。今天,我将向大家介绍10个非常有用的Python单行代码。 一行代码指的是将复杂的任务浓缩在一行代码中完成。它充分利用Python的简洁和强大,使代码更简洁、更…

k8s record 20240703

1. containerd 它不用于直接和开发人员互动,在这方面不和docker竞争 containerd的用时最短,性能最好。 containerd 是容器的生命周期管理,容器的网络管理等等,真正让容器运行需要runC containerd 是一个独立的容器运行时&am…

金丝键合强度测试仪试验条件要求:键合拉脱/引线拉力/剪切力等

金丝键合强度测试仪是测量引线键合强度,评估键合强度分布或测定键合强度是否符合有关的订购文件的要求。键合强度试验机可应用于采用低温焊、热压焊、超声焊或有关技术键合的、具有内引线的器件封装内部的引线-芯片键合、引线-基板键合或内引线一封装引线键合&#…

【Unity数据交互】二进制私

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 专栏交流🧧&…

迭代加深——AcWing 170. 加成序列

迭代加深 定义 迭代加深搜索(Iterative Deepening Depth-First Search, IDS)是一种结合了深度优先搜索(DFS)和广度优先搜索(BFS)特点的算法。它通过限制搜索树的深度来控制搜索范围,起初以较小…

【C++】开源:nlohmann/json数据解析库配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍nlohmann/json数据解析库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&am…

XAML 框架横向对比

多年来,基于 XAML 的 UI 框架有了很大的发展。下面的图表很好地证明了这个观点。XAML UI 框架的三大巨头:Avalonia UI、Uno Platform 和 .NET MAUI 都支持跨平台的应用。事实上,除了 Avalonia UI,对跨平台 XAML 的需求是它们发展的…

FPGA开发笔试1

1. 流程简介 我是两天前有FPGA公司的HR来问我实习的事情,她当时问我距离能不能接受,不过确实距离有点远(地铁通勤要将近一个半小时),然后她说给我约个时间,抽空做1个小时的题目(线上做&#xf…

(数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

控制下属绝不是拍桌子、甩脸子、摆架子,一流领导都用这3招!

控制下属绝不是拍桌子、甩脸子、摆架子,一流领导都用这3招! 第一招:规矩严 国有国法,家有家规,公司也不例外。 下属能不能和领导齐心,愿不愿意共同发力,全看管理者如何操控。 毫无疑问的是&a…

NSSCTF-Web题目24(RCE-空格绕过、过滤绕过)

目录 [MoeCTF 2021]babyRCE 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]funny_web 4、题目 5、知识点 6、思路 [MoeCTF 2021]babyRCE 1、题目 2、知识点 空格绕过、过滤绕过 3、思路 出现源码,进行代码审计 需要我们GET方式上传一个rce变量&#x…

程序员下班为什么不关电脑?难道在偷偷加班?!

不管是周围的程序员朋友还是网上的很多程序员朋友,在下班后都是习惯不关电脑的,关上显示器,拿上手机,快乐下班! 那么,为什么程序员下班都不关电脑?难道他们在偷偷加班? 其实&#x…

从GREE格力看如何起全球商标名称!

有些主体需要走出去出口到国外,普推商标知产老杨看到在一些海外电商平台的出售产品,也会需要英文商标,有的会申请申请注册中英结合商标,在国外申请注册也是比较方便。 格力开始想用“GLEE”(快乐)这个词作为商标名称,但…

七人互助拼团模式:共创共赢的电商新篇章

在当今电商行业的繁荣浪潮中,七人互助拼团模式犹如一股清流,凭借其独特的激励机制与深厚的互助合作文化,赢得了消费者与商家的广泛赞誉。这一模式不仅重新定义了团购体验,更在无形中强化了社群间的联系与协作,共同绘制…

Nettyの参数优化简单RPC框架实现

本篇介绍Netty调优,在上篇聊天室的案例中进行改造,手写一个简单的RPC实现。 1、超时时间参数 CONNECT_TIMEOUT_MILLIS 是Netty的超时时间参数,属于客户端SocketChannel的参数,客户端连接时如果一定时间没有连接上,就会…

【数据结构】常见四类排序算法

1. 插入排序 1.1基本思想: 直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。实际中我们…

Windows Server 2016 搭建 网络负载平衡 服务

网络负载平衡功能的安装 添加角色 默认不动————功能 勾选上 < 网络负载平衡 > 在工具中————打开 < 网络负载平衡管理器 > 网络负载平衡群集创建 注意 : 提前 将两台 web 站点服务器 都安装好 < 网络负载平衡功能 > 右键 选择 ————新建群集 ——…

麦蕊智数,,另外一个提供免费的股票数据API,可以通过其提供的接口获取实时和历史的股票数据。

麦蕊智数&#xff0c;&#xff0c;提供免费的股票数据API&#xff0c;可以通过其提供的接口获取实时和历史的股票数据。 API接口&#xff1a;http://api.mairui.club/hslt/new/您的licence 备用接口&#xff1a;http://api1.mairui.club/hslt/new/您的licence 请求频率&#x…

yolov5 json 和 txt数据格式关系

训练阶段 和 推理阶段数据格式转换说明 关于yolov5 数据格式一直以来都傻傻分不清楚&#xff0c;这下进行了一个梳理&#xff0c;做了笔记&#xff0c;也希望可帮助到有需要的有缘人~ 转换部分代码