测试环境:使用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.mzph.cn/pingmian/42321.shtml

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

相关文章

【双一流高校主办,Springer-LNICST出版,EI稳定检索】2024年应用计算智能、信息学与大数据国际会议(ACIIBD 2024,7月26-28)

2024年应用计算智能、信息学与大数据国际学术会议(ACIIBD 2024)将于2024年7月26-28日在中国广州举办。会议将聚焦于计算智能及其应用、信息、大数据等相关的研究领域, 广泛邀请国内外知名专家学者,共同探讨相关学科领域的最新发展…

rsyslog日志转发

前言 Rsyslog可用于接受来自各种来源(本地和网络)的输入,转换它们,并将结果输出到不同(通过模板和filter过滤)的目的地(目录文件中) rsyslog是一个开源工具,被广泛用于Linux系统以通过TCP/UDP…

[spring] Spring MVC - security(上)

[spring] Spring MVC - security(上) 这部分的内容基本上和 [spring] rest api security 是重合的,主要就是添加 验证(authentication)和授权(authorization)这两个功能 即: 用户…

python自动化办公之cryptography加密解密

目录 用到的库 实现效果 代码部分 1、加密2024.txt文件 2、解密2024.txt文件 用到的库 cryptography 实现效果 加密文件和解密文件 代码部分 1、加密2024.txt文件 # 加密 from cryptography.fernet import Fernet # 生成加密密钥 keyFernet.generate_key() cipher_s…

Raw Socket(一)实现TCP三次握手

实验环境: Windows物理机:192.168.1.4 WSL Ubuntu 20.04.6 LTS:172.19.32.196 Windows下的一个http服务器:HFS,大概长这个样子: 客户端就是Ubuntu,服务端就是这个…

收银系统源码-线上商城预售功能

1.功能描述 预售:智慧新零售收银系统,线上商城营销插件之一,商品出售时可设置以支付定金或全款的方式提前预售,门店按订单量备货,降低压货成本; 2.适用场景 易损商品提前下单备货,如水果生鲜…

【算法笔记自学】第 5 章 入门篇(3)——数学问题

5.1简单数学 #include <cstdio> #include <algorithm> using namespace std; bool cmp(int a,int b){return a>b; } void to_array(int n,int num[]){for(int i0;i<4;i){num[i]n%10;n /10;} } int to_number(int num[]){int sum0;for(int i0;i<4;i){sumsu…

AI微电影制作教程:轻松打造高清小人国画面

AI微电影作为一种新兴的视频内容形式&#xff0c;以其独特的视觉效果和制作技术在各大视频平台上取得了显著的流量表现。 2. AI微电影的特点 2.1 高清画质与流畅动作&#xff1a;AI微电影以其高分辨率和流畅的动作给观众带来优质的视觉体验。 2.2 微缩画面效果&#xff1a;独…

使用Docker、Docker-compose部署单机版达梦数据库(DM8)

安装前准备 Linux Centos7安装&#xff1a;https://blog.csdn.net/andyLyysh/article/details/127248551?spm1001.2014.3001.5502 Docker、Docker-compose安装&#xff1a;https://blog.csdn.net/andyLyysh/article/details/126738190?spm1001.2014.3001.5502 下载DM8镜像 …

自动控制:前馈控制

自动控制&#xff1a;前馈控制 前馈控制是一种在控制系统中通过预先计算和调整输入来应对已知扰动或变化的方法。相比于反馈控制&#xff0c;前馈控制能够更快速地响应系统的变化&#xff0c;因为它不依赖于系统输出的反馈信号。前馈控制的应用在工业过程中尤为广泛&#xff0…

element-ui输入框如何实现回显的多选样式?

废话不多说直接上效果&#x1f9d0; 效果图 <template><div><el-form:model"params"ref"queryForm"size"small":inline"true"label-width"68px"><el-form-item label"标签" prop"tag&q…

基于java+springboot+vue实现的仓库管理系统(文末源码+lw+ppt)23-499

第1章 绪论 伴随着信息社会的飞速发展&#xff0c;仓库管理所面临的问题也一个接一个的出现&#xff0c;所以现在最该解决的问题就是信息的实时查询和访问需求的问题&#xff0c;以及如何利用快捷便利的方式让访问者在广大信息系统中进行查询、分享、储存和管理。这对我们的现…

【第三版 系统集成项目管理工程师】第4章 信息系统架构

持续更新。。。。。。。。。。。。。。。 【第三版】系统集成项目管理工程师 考情分析4.1架构基础4.1.1指导思想&#xff08;非重点&#xff09; P1364.1.2设计原则&#xff08;非重点&#xff09; P1364.1.3建设目标&#xff08;非重点&#xff09; P1374.1.4总体框架 P138练习…

常见的Java运行时异常

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

windows无法访问github

##一、如果发现windows无法访问github时 一般就是我们的dns出现了问题&#xff0c;此时我们需要更换一个dns访问 ##二、解决方法 首先我们访问ip查询地址&#xff0c; https://ipchaxun.com/github.com/ 可更换下面历史ip进行测试&#xff0c;在windows的cmd里面输入ping git…

Python学习笔记31:进阶篇(二十)pygame的使用之图形绘制

前言 基础模块的知识通过这么长时间的学习已经有所了解&#xff0c;更加深入的话需要通过完成各种项目&#xff0c;在这个过程中逐渐学习&#xff0c;成长。 我们的下一步目标是完成python crash course中的外星人入侵项目&#xff0c;这是一个2D游戏项目。在这之前&#xff…

Day2用 rustlings 练习 Rust 语言-Move Semantics

大家好 今天 完成 2024年自动驾驶OS开发训练营-初阶营第四期-导学 Day2用 rustlings 练习 Rust 语言 -Move Semantics https://doc.rust-lang.org/stable/book/ch04-00-understanding-ownership.html 提交代码时候 提示 没有权限怎么出来 aciton 参考开发环境配置 https://rcor…

图片管理新纪元:高效批量横向拼接图片,一键生成灰色艺术效果,打造专业视觉体验!

在数字时代&#xff0c;图片已成为我们生活和工作中不可或缺的一部分。但面对海量的图片&#xff0c;如何高效地进行批量管理、拼接和调色&#xff0c;成为许多人面临的难题。今天&#xff0c;我们为您带来了一款颠覆性的图片管理工具&#xff0c;让您轻松实现图片批量横向拼接…

智慧生活新篇章,Vatee万腾平台领航前行

在21世纪的科技浪潮中&#xff0c;智慧生活已不再是一个遥远的梦想&#xff0c;而是正逐步成为我们日常生活的现实。从智能家居的温馨便捷&#xff0c;到智慧城市的高效运转&#xff0c;科技的每一次进步都在为我们的生活增添新的色彩。而在这场智慧生活的变革中&#xff0c;Va…

论文翻译 | (TAKE A STEP BACK) 后退一步:在大型语言模型中通过抽象来调用推理

摘要 我们介绍了STEP-BACK提示&#xff0c;这是一种简单的提示技术&#xff0c;使LLM能够进行抽象&#xff0c;从而从包含特定细节的实例中派生高级概念和第一原则。使用概念和原则来指导推理&#xff0c;LLM显着提高了他们遵循正确推理路径的能力。我们使用PaLM-2L、GPT-4和Ll…