自学内容网 自学内容网

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

浏览器信任自定义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

示例:

在这里插入图片描述

创建应用证书

该步骤分为两步:

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

创建证书私钥

执行如下命令:

openssl genrsa -out private.key 2048 

示例:

在这里插入图片描述

创建证书请求文件

执行如下命令:

-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

示例:

在这里插入图片描述

创建扩展描述文件

创建一个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

示例:

在这里插入图片描述

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://blog.csdn.net/qq_40874285/article/details/141465367

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!