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

文章目录

    • 需求
    • 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.csropenssl 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.rhkb.cn/news/370827.html

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

相关文章

前端根据目录生成模块化路由routes

根据约定大于配置的逻辑,如果目录结构约定俗成,前端是可以根据目录结构动态生成路由所需要的 route 结构的,这个过程是要在编译时 进行,生成需要的代码,保证运行时的代码正确即可 主流的打包工具都有对应的方法读取文…

设计模式之状态机模式

一、状态机模式介绍 状态机模式(State Machine Pattern)是一种用于描述对象行为的软件设计模式,属于行为型设计模式。在状态机模式中,对象的行为取决于其内部状态,并且在不同的状态下,对象可能会有不同的行…

Java信号量semaphore的原理与使用方法

Semaphore的基本概念 在Java中,Semaphore是位于java.util.concurrent包下的一个类。它的核心就是维护了一个许可集。简单来说,就是有一定数量的许可,线程需要先获取到许可,才能执行,执行完毕后再释放许可。 那么&…

Unity 简单载具路线 Waypoint 导航

前言 在游戏开发和导航系统中,"waypoint" 是指路径中的一个特定位置或点。它通常用于定义一个物体或角色在场景中移动的目标位置或路径的一部分。通过一系列的 waypoints,可以指定复杂的移动路径和行为。以下是一些 waypoint 的具体用途&…

YoloV8改进策略:Block改进|轻量实时的重参数结构|最新改进|即插即用(全网首发)

摘要 本文使用重参数的Block替换YoloV8中的Bottleneck,GFLOPs从165降到了116,降低了三分之一;同时,map50-95从0.937涨到了0.947。 改进方法简单,只做简单的替换就行,即插即用,非常推荐&#xf…

【leetcode52-55图论、56-63回溯】

图论 回溯【56-63】 46.全排列 class Solution:def permute(self, nums):result []self.backtracking(nums, [], [False] * len(nums), result)return resultdef backtracking(self, nums, path, used, result):if len(path) len(nums):result.append(path[:])returnfor i …

pdf怎么转换成图片格式文件,pdf文档怎么转换成图片格式

在数字化时代,pdf文件转换成图片格式是一种常见的操作,无论是在工作还是日常生活中,我们总会遇到需要将pdf文件转换为图片的需求。这可能是因为图片格式更易于分享、展示或编辑。那么,如何高效地将pdf转换成图片呢?本文…

QListWidget 缩略图IconMode示例

1、实现的效果如下&#xff1a; 2、实现代码 &#xff08;1&#xff09;头文件 #pragma once #include <QtWidgets/QMainWindow> #include "ui_QListViewDemo.h" enum ListDataType { ldtNone -1, ldtOne 0, ldtTwo 1, }; struct ListData…

Error in onLoad hook: “SyntaxError: Unexpected token u in JSON at position 0“

1.接收页面报错 Error in onLoad hook: "SyntaxError: Unexpected token u in JSON at position 0" Unexpected token u in JSON at position 0 at JSON.parse (<anonymous>) 2.发送页面 &#xff0c;JSON.stringify(item) &#xff0c;将对象转换为 JSO…

计算机网络——数据链路层(点对点协议PPP)

点对点协议PPP的概述 对于点对点的链路&#xff0c;目前使用得最广泛的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。 它主要应用于两个场景&#xff1a; 用户计算机与ISP之间的链路层协议就是点对点协议 PPP&#xff0c;1999年公布了回以在以太网上运行的PPP协…

事务(数据库)

是一组操作的集合&#xff0c;是一个不可分割的工作单位&#xff0c;事物会把所有的操作作为一个整体一起向系统提交或撤销操作请求&#xff0c;这些操作要么同时成功&#xff0c;要么同时失败 create table account(id int auto_increment primary key comment 主键ID,name va…

人工智能在病理切片虚拟染色及染色标准化领域的系统进展分析|文献速递·24-07-07

小罗碎碎念 本期文献主题&#xff1a;人工智能在病理切片虚拟染色及染色标准化领域的系统进展分析 这一期文献的速递&#xff0c;是有史以来数量最大的一次&#xff0c;足足有十一篇&#xff0c;本来打算分两期写&#xff0c;但是为了知识的系统性&#xff0c;我决定咬咬牙&…

昇思MindSpore学习笔记5-01生成式--LSTM+CRF序列标注

摘要&#xff1a; 记录昇思MindSpore AI框架使用LSTMCRF模型分词标注的步骤和方法。包括环境准备、score计算、Normalizer计算、Viterbi算法、CRF组合,以及改进的双向LSTMCRF模型。 一、概念 1.序列标注 标注标签输入序列中的每个Token 用于抽取文本信息 分词(Word Segment…

常见的Java运行时异常

常见的Java运行时异常 1、ArithmeticException&#xff08;算术异常&#xff09;2、ClassCastException &#xff08;类转换异常&#xff09;3、IllegalArgumentException &#xff08;非法参数异常&#xff09;4、IndexOutOfBoundsException &#xff08;下标越界异常&#xf…

dell Vostro 3690安装win11 23h2 方法

下载rufus-4.5.exe刻U盘去除限制 https://www.dell.com/support/home/zh-cn/product-support/product/vostro-3690-desktop/drivers dell官网下载驱动解压到U盘 https://dl.dell.com/FOLDER09572293M/2/Intel-Rapid-Storage-Technology-Driver_88DM9_WIN64_18.7.6.1010_A00_01…

ros1仿真导航机器人 navigation

仅为学习记录和一些自己的思考&#xff0c;不具有参考意义。 1navigation导航框架 2导航设置过程 &#xff08;1&#xff09;启动仿真环境 roslaunch why_simulation why_robocup.launch &#xff08;2&#xff09;启动move_base导航、amcl定位 roslaunch why_simulation nav…

基于Maximin的异常检测方法(MATLAB)

异常存在于各个应用领域之中&#xff0c;往往比正常所携带的信息更多也更为重要。例如医疗系统中疾病模式&#xff0c;信用卡消费中的欺诈行为&#xff0c;数据库中数据泄露&#xff0c;大型机器故障&#xff0c;网络入侵行为等。大数据技术体系的快速兴起与发展&#xff0c;加…

使用Spring Boot和自定义缓存注解优化应用性能

在现代应用开发中&#xff0c;缓存是提高系统性能和响应速度的关键技术之一。Spring Boot提供了强大的缓存支持&#xff0c;但有时我们需要更灵活的缓存控制。本文将介绍如何使用Spring Boot和自定义缓存注解来优化应用性能。 1. 为什么需要自定义缓存注解&#xff1f; Sprin…

【ue5】虚幻5同时开多个项目

正常开ue5项目我是直接在桌面点击快捷方式进入 只会打开一个项目 如果再想打开一个项目需要进入epic 再点击启动就可以再开一个项目了

步进电机改伺服电机

步进电机&#xff1a; 42&#xff1a;轴径5mm 57&#xff1a;轴径8mm 86&#xff1a;轴径14mm 【86CME120闭环】// 12牛米 伺服电机&#xff1a; 40&#xff1a; 60&#xff1a; 80&#xff1a; 86&#xff1a; ECMA——C 1 0910 R S 4.25A 轴径…