浏览器信任自定义https证书修改

embedded/2024/11/25 23:49:27/

https_1">浏览器信任自定义https证书修改

由于公司内部项目上要求平台使用https协议访问平台地址,并且使浏览器信任自定义HTTPS证书,因此可通过如下方式证书生成方式,并安装自定义生成证书做到浏览器信任自定义HTTPS证书。

通过openssl生成证书步骤如下:

  • 生成根证书
  • 创建应用证书
  • 创建扩展描述文件
  • 生成CRT证书文件
  • Nginx配置SSL证书
  • 安装根证书文件

生成根证书

执行如下命令用于生成CA根证书:

-subj:可根据不同的场景进行替换,记录根证书信息。

-days:证书有效期时间,这里使用10年。

-keyout:根证书key文件名称。

-out:根证书文件名称

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -subj "/C=CN/ST=BJ/L=BJ/O=DfpDev" -keyout CA.key -out CA.crt -reqexts v3_req -extensions v3_ca

示例:

https://i-blog.csdnimg.cn/direct/1c979974014749e6876d5a96b463e0b3.png#pic_center" alt="在这里插入图片描述" />

创建应用证书

该步骤分为两步:

  • 创建证书私钥
  • 根据私钥创建证书请求文件

创建证书私钥

执行如下命令:

openssl genrsa -out private.key 2048 

示例:

https://i-blog.csdnimg.cn/direct/3546ae002a054cc192a0bd870f55e1e0.png#pic_center" alt="在这里插入图片描述" />

创建证书请求文件

执行如下命令:

-key:指定证书的私钥。

-subj:根据场景指定参数,其中CN参数表示访问地址,如果是其他的IP或者域名可替换。

-out:指定证书请求文件名称。

openssl req -new -key private.key -subj "/C=CN/ST=BJ/L=BJ/O=TecDev/CN=127.0.0.1" -sha256 -out private.csr

示例:

https://i-blog.csdnimg.cn/direct/3fdd71fa2fad4255be5b6b58abdfdaa1.png#pic_center" alt="在这里插入图片描述" />

创建扩展描述文件

创建一个SSL扩展的文件,命名为private.ext,内容如下:

[ req ] 
default_bits = 1024 
distinguished_name = req_distinguished_name 
req_extensions = san 
extensions = san 
[ req_distinguished_name ] 
countryName = CN 
stateOrProvinceName = Definesys 
localityName = Definesys 
organizationName = Definesys 
[SAN] 
authorityKeyIdentifier=keyid,issuer 
basicConstraints=CA:FALSE 
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment 
subjectAltName = IP:10.192.122.74

注:subjectAltName需注意,如果在证书请求文件csr中写的是域名,则应该替换成如下,域名使用DNS,IP使用IP:

subjectAltName = DNS:www.test.com

生成CRT证书文件

执行命令如下:

-days:证书有效期,这里使用10年。

-in:指定证书请求文件。

-CA:指定根证书文件。

-CAkey:指定根key证书文件。

-out:生成CRT证书文件名称。

-extfile:指定扩展描述文件。

openssl x509 -req -days 3650 -in private.csr -CA CA.crt -CAkey CA.key -CAcreateserial -sha256 -out private.crt -extfile private.ext -extensions SAN

示例:

https://i-blog.csdnimg.cn/direct/0cb8af8169344f16bd4bc4e0f95deca9.png#pic_center" alt="在这里插入图片描述" />

Nginx配置SSL证书

在Nginx的配置文件中,在指定的server模块下加上SSL配置:

ssl_certificate      /etc/nginx/ssl_certificate/private.crt;
ssl_certificate_key  /etc/nginx/ssl_certificate/private.key;
#协议优化(可选,优化https协议,增强安全性)
ssl_protocols        TLSv1.2;
ssl_ciphers          ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers  on;
ssl_session_cache    shared:SSL:10m;
ssl_session_timeout  10m;

执行Nginx重载命令即可。

安装根证书文件

将根证书CA.crt文件下载到本地。

https://i-blog.csdnimg.cn/direct/c26b549da22c4c17997500ec948ebdaa.png#pic_center" alt="在这里插入图片描述" />

本地安装步骤如下:

https://i-blog.csdnimg.cn/direct/01c796704a0b49ca86a120d1efd21759.png#pic_center" alt="在这里插入图片描述" />

选择当前用户或者本地计算机都可以。

https://i-blog.csdnimg.cn/direct/333b76dc04f749978cce441252f0c07a.png#pic_center" alt="在这里插入图片描述" />

这里需选择受信任得根证书颁发机构

https://i-blog.csdnimg.cn/direct/9a8da818359945b1ac15cbfd189f36e6.png#pic_center" alt="在这里插入图片描述" />
导入成功即可。重启浏览器访问即可。


http://www.ppmy.cn/embedded/140502.html

相关文章

单片机和FPGA有什么区别?

单片机(Microcontroller Unit,MCU)和FPGA(Field-Programmable Gate Array,现场可编程门阵列)是两种不同类型的电子组件,它们在设计、功能和应用方面有显著的区别: 1. 设计和可编程性…

OSPF路由状态数据库、type 类型、完整的LSA

【OSPF】 1.Lsdb:链路状态数据库【存放多条LSA——链路状态通告信息】 2..Dis ospf lsdb : 查看设备LSDB. 3.Ospf process__ with router ID __ : ospf的进程为___router_id为 ____. 4.Lsdb:链路状态数据库【存放多条…

shell脚本(二)

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…

MySQL底层概述—1.InnoDB内存结构

大纲 1.InnoDB引擎架构 2.Buffer Pool 3.Page管理机制之Page页分类 4.Page管理机制之Page页管理 5.Change Buffer 6.Log Buffer 1.InnoDB引擎架构 (1)InnoDB引擎架构图 (2)InnoDB内存结构 (1)InnoDB引擎架构图 下面是InnoDB引擎架构图,主要分为内存结构和磁…

面试:请阐述MySQL配置文件my.cnf中参数log-bin和binlog-do-db的作用

大家好,我是袁庭新。星球里的小伙伴去面试,面试官问:MySQL配置文件my.cnf中参数log-bin和binlog-do-db的作用?一脸懵逼~不知道该如何回答。 在MySQL的配置文件my.cnf中,log-bin和binlog-do-db是与二进制日志…

Android Toast信息定位分析介绍

Android Toast信息定位分析介绍 文章目录 Android Toast信息定位分析介绍一、前言二、Toast定位1、系统源码加日志定位Toast信息(1)Toast 的源码位置:(2)添加打印日志: 2、监听无障碍模式下的Toast信息(1)MyAccessibilityService继…

MySQL中的ROW_NUMBER窗口函数简单了解下

ROW_NUMBER() 是 MySQL8引入的窗口函数之一,它为查询结果集中的每一行分配一个唯一的顺序号(行号)。这个顺序号是基于窗口函数的 ORDER BY 子句进行排序的,可以根据指定的排序顺序生成连续的整数值。 ROW_NUMBER() 在分页、去重、…

R语言4.3.0安装教程【附安装包】

R for Windows是一个免费的用于统计计算和统计制图的优秀工具,是R语言开发工具。它拥有数据存储和处理系统、数组运算工具(其向量、矩阵运算方面功能尤其强大)、完整连贯的统计分析工具、优秀的统计制图等功能。提供的图形界面,可…