[玩转系统] Windows 10 上卓越的 OpenSSL (PowerShell)
作者:精品下载站 日期:2024-12-14 13:05:28 浏览:17 分类:玩电脑
Windows 10 上卓越的 OpenSSL (PowerShell)
生成 SSL 证书可能是一项艰巨的任务,充满了挫败感和悲伤。但事实并非一定如此!如果您拥有 Windows 10 和 OpenSSL 以及本教程的一些帮助,那么您将会顺利上路。
在本文中,您将学习如何在 Windows 10 上安装 OpenSSL。安装后,您将生成 SSL 证书、排除故障和调试证书以及在格式之间进行转换。
让我们开始在 Windows 10 上使用 PowerShell 掌握 OpenSSL!
相关:使用 Windows 证书管理器和 PowerShell 管理证书
先决条件
在本文中,您将使用实践方法进行学习。虽然 OpenSSL 历史上是一个 Linux 操作系统实用程序,但您也可以在 Windows 操作系统中使用它。
- 具有本地管理员权限的 Windows 系统 - 本教程将使用 Windows 10
- Windows PowerShell 5.1(Windows 附带)或 PowerShell 7
- Chocolatey - Windows 上安装的包管理器。
- PowerShell ISE、Visual Studio Code 或您选择的任何文本编辑器
本指南中的所有屏幕截图均取自 Windows 10 build 1909 和 PowerShell 7。
使用 PowerShell 和 Chocolatey 在 Windows 10 上安装 OpenSSL
假设您已按照安装说明安装了 Chocolatey,您的第一个任务是在 Windows 10 上安装 OpenSSL。为此,请打开 PowerShell 控制台并运行 choco install OpenSSL.Light
,如下所示。
就是这样!您现在已经使用 PowerShell 安装了 OpenSSL。
设置工作目录
本教程将创建一些可供学习的证书。为了确保您在此处所做的所有工作都限制在一个文件夹中(您可以稍后清理),请继续创建一个文件夹。
本教程将把所有证书和相关文件存储在C:\certs文件夹中。您可以通过运行以下命令使用 PowerShell 创建文件夹。
New-Item -ItemType Directory -Path C:\certs
现在是时候配置 OpenSSL 了。
配置 OpenSSL
默认情况下,Windows 10 上的 OpenSSL 不附带配置文件。这是有意为之的,因为您可以自定义许多配置选项。出于本指南的目的,您将使用一个示例配置,您可以稍后自定义该配置以最适合您的安全要求。
打开 PowerShell 并运行以下命令。此命令从 MIT 下载示例配置文件,并将其保存为当前工作目录中的 openssl.cnf。
Invoke-WebRequest 'http://web.mit.edu/crypto/openssl.cnf' -OutFile .\openssl.cnf
您现在可以打开 openssl.cnf 文件,您应该会看到如下所示的内容。
下载的配置目前将按原样运行。不要在生产环境中使用默认值!
更新 PowerShell 配置文件环境变量
为了使事情顺利进行,您应该在 Windows 10 上修改您的 PowerShell 配置文件。设置一些环境变量可以让您轻松地在可能已安装的不同版本的 OpenSSL 之间切换。
我建议向您的 PowerShell 配置文件添加两个环境变量,分别为 path
和 OPENSSL_CONF
。您将更新 PATH
环境变量,以确保您可以在命令行上的任何位置运行 openssl 二进制文件。
如果您还没有 PowerShell 配置文件,您将在下面看到一种创建 PowerShell 配置文件的方法。此命令将 OpenSSL 二进制路径附加到您的 PATH
并将配置文件路径分配给 OPENSSL_CONF
。
# Add environment variables to PowerShell profile
# Test for a profile, if not found create one!
if (-not (Test-Path $profile) ) {
New-Item -Path $profile -ItemType File -Force
}
# Edit profile to add these lines
'$env:path = "$env:path;C:\Program Files\OpenSSL\bin"' | Out-File $profile -Append
'$env:OPENSSL_CONF = "C:\certs\openssl.cnf"' | Out-File $profile -Append
要使用环境变量,请重新加载您的配置文件并输入 。 $profile
或者只是关闭并重新打开 PowerShell。
现在,无论您在 PowerShell 中的任何位置,都可以轻松调用 openssl 二进制文件,如下所示。
在 Windows 10 上使用 OpenSSL 生成 CSR 和私钥
在创建 SSL 证书之前,您必须生成证书签名请求 (CSR)。 CSR 是一个编码文件,它为您提供了一种与证书颁发机构 (CA) 共享公钥的方法。该文件包含识别信息、签名算法和数字签名。让我们创建您的第一个 CSR 和私钥。
相关:面向凡人的 X509 证书指南
要创建 CSR,请运行以下命令。然后,OpenSSL 将提示您输入一些识别信息,如以下演示中所示。
openssl req -new -out MyFirst.csr
完成后,您将拥有有效的 CSR 和私钥,可用于向您颁发 SSL 证书。
如果您不想每次生成 CSR 时都输入数据,则可以进一步编辑配置文件默认值以简化此过程。
您可以在手册页中阅读有关可用 CSR 选项的更多信息并查看示例配置。 OpenSSL 还有一个活跃的 GitHub 存储库,其中也包含示例。
生成 RSA 密钥对
您还可以使用 OpenSSL 创建 RSA 密钥对(公共/私有)。为此,首先使用 genrsa 子命令创建私钥,如下所示。
当您运行以下命令时,Windows 10 上的 OpenSSL 将生成密钥长度为 2048 位的 RSA 私钥。该密钥在现代硬件上几乎立即生成。生成的密钥输出到工作目录中
# generate a private key using maximum key size of 2048
# key sizes can be 512, 758, 1024, 1536 or 2048.
openssl genrsa -out rsa.private 2048
接下来,使用您刚刚使用 rsa 子命令创建的私钥生成公钥。下面的语法将根据 rsa.private 私钥在工作目录中创建一个名为 rsa.public 的公钥。
# generate a public key using the private key
openssl rsa -in rsa.private -out rsa.public -pubout -outform PEM
生成自签名证书
有时您可能需要生成自签名证书。自签名证书适合实验室使用,但在生产环境中使用并不安全。
在继续下一个任务之前,让我们创建一个自签名证书。为此,请输入以下命令来创建 X509 SSL 证书。该证书将使用 SHA256 加密技术,使用 2048 位的 RSA 密钥长度,其有效期为 365 天。证书将保存到工作目录中。
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
您现在已准备好将证书导入浏览器或服务器。
使用 OpenSSL 验证 CSR、证书和密钥
检查 CSR、私钥、证书或 PKCS#12 中的信息可以节省您排除 SSL 错误的时间。例如,有时可能会使用错误的密钥来创建证书。您的证书中的识别信息可能有误。
让我们首先使用 req
命令和一些参数检查 CSR:
openssl req -text -noout -verify -in .\MyFirst.csr
国家/地区名称、组织名称以及您在本指南开头创建 CSR 时输入的电子邮件地址等详细信息应精确匹配。
您还可以使用带有几个参数的 x509
子命令检查证书:
openssl x509 -in .\certificate.crt -text -noout | more
使用 OpenSSL 转换证书
有时应用程序不使用特定的证书格式。您可能会在使用名为 HAproxy 的应用程序时遇到此问题,例如,当您可能拥有 DER 格式的证书 (.crt .cer .der) 时,该应用程序需要 PEM 证书。
为了演示如何转换证书,我们将之前以 DER 格式创建的自签名证书 (certificate.crt) 转换为 PEM。使用以下代码片段中的代码来执行此操作。
下面的命令使用 x509
子命令以及 -inform
参数,该参数应与 -in
文件的格式匹配,后跟 -out
格式。
openssl x509 -inform der -in .\certificate.crt -out .\certificate.pem
如果您也想从 PEM 获取 DER 格式,也可以颠倒顺序,如下所示。
openssl x509 -outform der -in .\certificate.pem -out .\certificate.der
最后但并非最不重要的一点是,您可以将 PKCS#12 转换为 PEM,并将 PEM 转换为 PKCS#12。这是包含私钥和证书的文件类型。要转换为 PEM 格式,请使用 pkcs12
子命令。
openssl pkcs12 -in .\SomeKeyStore.pfx -out .\SomeKeyStore.pem -nodes
您还可以使用 -export
和一些附加选项将 PEM 证书和私钥转换为 PKCS#12 格式。下面,您将使用 SomeCertificate.crt
作为输入源,使用您的私钥导出 PKCS#12 格式的证书。使用 -certfile
选项值 MyCACert.crt
允许您验证 SomeCertificate.crt
。
openssl pkcs12 -export -out SomeCertificate.pfx -inkey SomePrivateKey.key -in SomeCertificate.crt -certfile MyCACert.crt
故障排除和调试
现在您可以创建和转换 CSR、证书和密钥对,是时候学习如何对它们进行故障排除和调试了。 OpenSSL 附带的命令可以轻松解决问题。
OpenSSL 还允许您检查证书的文件完整性并测试可能的数据损坏。使用 MD5 校验和,您可以使用以下代码示例来测试证书、密钥和 CSR:
# Certificates
openssl x509 -noout -modulus -in .\certificate.crt | openssl md5
# Public / Private Keys
openssl rsa -noout -modulus -in .\privateKey.key | openssl md5
# Certificate Server Request
openssl req -noout -modulus -in .\MyFirst.csr | openssl md5
# Check an external SSL connection
openssl s_client -connect www.google.com:443
获得原始哈希后,您可以将该原始哈希与当前哈希进行比较,以验证证书没有被修改或损坏。
以下是该代码在 PowerShell 中运行时的示例:
概括
在本文中,您了解了如何在 Windows 10 上安装和配置 OpenSSL、创建 CSR、密钥对和 SSL 证书。您还了解了如何在不同的证书格式之间进行转换以及如何使用内置子命令进行一些基本的故障排除。
其他资源
- OpenSSL 配置手册页
- OpenSSL 命令
- 在线 SSL 检查器
- 使用 PowerShell 自动安装 IIS SSL 证书
- 如何使用 PowerShell 创建自签名证书
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag