Vue + Asp.NET调试时出现的证书问题 (OpenSSL)

Vue + Asp.NET调试时出现的证书问题

    • [1. 证书过期问题](#1. 证书过期问题)
      • 步骤一:创建新的私钥
      • [步骤 2: 创建新的证书签名请求(CSR)](#步骤 2: 创建新的证书签名请求(CSR))
      • [步骤 3: 使用 CSR 和 CA 私钥签署新证书](#步骤 3: 使用 CSR 和 CA 私钥签署新证书)
      • [步骤 4: 替换或使用新证书](#步骤 4: 替换或使用新证书)
    • [2. 证书不受信任问题](#2. 证书不受信任问题)
    • [3. 安全证书不指定使用者可选名称](#3. 安全证书不指定使用者可选名称)
      • [步骤一: 删除已生成的证书](#步骤一: 删除已生成的证书)
      • [步骤二: 创建配置文件](#步骤二: 创建配置文件)
      • [步骤 3: 生成自签名证书](#步骤 3: 生成自签名证书)
  • 完结

今天调试之前的项目突然之间提示证书过期,每次刷新界面都要手动点一下,非常难受.

因为当时没有截图,这里网上找一张图片,我的是localhost,每次刷新都需要点击继续访问,在这里记录一下解决过程.

1. 证书过期问题

根据Vue的配置文件Vite.config.js找到证书的地址C:\Users\你的用户名\AppData\Roaming\ASP.NET\https

删除掉pem的文件,然后使用OpenSSL生成一个新的证书,关于OpenSSL的使用可以看这篇文章(OpenSSL新手教程)

过程如下:

步骤一:创建新的私钥

在这里我们已经有私钥了,就不需要重新生成私钥了,但是如果想要更换私钥可以使用以下命令

私钥的名称应该与配置文件中变量certigicateName的值一致,我这里以new_private为例,实际使用请注意更改名称,这个试用以下所有生成语句

bash 复制代码
openssl genrsa -out new_private.key 2048

这里的 2048 是密钥长度,推荐至少使用这个长度以保证安全性。

步骤 2: 创建新的证书签名请求(CSR)

使用新创建的私钥或者继续使用旧私钥(如果私钥不变),创建一个新的证书签名请求(CSR):

bash 复制代码
openssl req -new -key new_private.key -out new_certificate_request.CSR

在创建的过程中,你将被提示输入一些信息,如国家、省份、城市、组织名等。

步骤 3: 使用 CSR 和 CA 私钥签署新证书

如果你正在更新的是一个自签名证书,你实际上就是自己的证书颁发机构(CA)。因此,你将使用自己的 CA 私钥来签署新的证书。假设你的 CA 私钥是 ca_key.pem,CA 的证书(公钥部分)是 ca_cert.pem,可以执行以下命令:

bash 复制代码
openssl x509 -req -in new_certificate_request.csr -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -out new_certificate.pem -days 365

这里的 -days 365 指定了新证书的有效期为一年。你可以根据需要调整这个数字。

步骤 4: 替换或使用新证书

最后,将新生成的 new_certificate.pem 替换原来的 shortcutlinks.client.pem,或者如果你只是想测试新证书,可以先在应用程序中使用新证书而不立即替换。

2. 证书不受信任问题

根据以上方法更新了证书,但是又出现了新的问题,操作系统不信任其安全证书

因为上面生成的是自签名证书,浏览器默认是无法信任的,思路很简单,既然不信任,那就让它信任就好了.

步骤:

Win + R -> 输入certmgr.msc,按回车 -> 右击受信任的根证书颁发机构,选择所有任务->导入

按照要求导入上面生成的证书即可.

但是不要急,可能还会有新的问题

3. 安全证书不指定使用者可选名称

此服务器无法证明它是 localhost;它的安全证书不指定使用者可选名称

看到这里恭喜你,以上步骤可能需要重新来一次了.

步骤一: 删除已生成的证书

步骤二: 创建配置文件

创建文件Con.cnf,内容如下:

clike 复制代码
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
C = US
ST = California
L = San Francisco
O = YourOrganization
OU = YourDepartment
CN = localhost

[v3_req]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost
DNS.2 = www.baidu.com
# 根据需要添加更多DNS或IP条目

步骤 3: 生成自签名证书

使用 openssl 命令行工具,结合刚创建的配置文件和现有的私钥文件来生成自签名证书。请注意,下面的命令会生成一个默认名为 cert.pem 的证书文件,之后我们需要手动重命名它。

bash 复制代码
openssl req -x509 -new -nodes -key shortcutlinks.client.key -sha256 -days 365 -out cert.pem -config Con.cnf

按照提示输入指定的内容后生成新的证书.

完结

现在您应该有了一个自签名证书文件,以及对应的私钥文件,可以用于需要SSL/TLS加密的客户端认证或其他相应用途。请记住,自签名证书在生产环境或对外公开的服务中可能会导致安全警告,因此仅推荐在内部测试或开发环境中使用。

相关推荐
滚雪球~18 分钟前
如何使用Windows快捷键在多显示器间移动窗口
windows·计算机外设
开发者每周简报1 小时前
微软的AI转型故事
人工智能·microsoft
唐 城1 小时前
微软致力于将非 OpenAI 模型添加到 365 Copilot 产品中
microsoft·copilot
阿7_QuQ1 小时前
微软远程桌面APP怎么用
microsoft
大猫和小黄2 小时前
Windows、CentOS环境下搭建自己的版本管理资料库:GitBlit
linux·服务器·windows·git
Schwertlilien2 小时前
图像处理-Ch6-彩色图像处理
windows
仰望大佬0072 小时前
Avalonia实例实战五:Carousel自动轮播图
数据库·microsoft·c#
小奥超人6 小时前
PDF无法打印!怎么办?
windows·经验分享·pdf·办公技巧·pdf加密解密
gywl10 小时前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos
某柚啊11 小时前
Windows开启IIS后依然出现http error 503.the service is unavailable
windows·http