SSL生成证书的几种方式

目录

一、使用makecert命令生成

二、PowerShell 命令生成方式

确定你的打包应用的主体

使用 New-SelfSignedCertificate 创建证书

三、Openssl 生成方式

四、Window IIS生成证书

五、EKU (OID)扩展

六、参考


一、使用makecert命令生成

  1. 生成自签名证书。
  2. 以下命令行包含使用 makecert.exe 在 WinRM 主机上创建证书的示例语法。makecert.exe -r -pe -n "CN=host_name-3,O=organization_name" -e mm/dd/yyyy -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 certificate_name.cer
  3. 通过使用 Microsoft 管理控制台添加生成的证书。
    1. 运行 mmc.exe。
    2. 选择文件 > 添加/删除管理单元。
    3. 从可用管理单元列表中,选择证书,然后单击添加。
    4. 选择计算机帐户并单击下一步。
    5. 单击完成。
    6. 验证在控制台根 > 证书(本地计算机) > 个人 > 证书和控制台根 > 证书(本地计算机) > 受信任的根证书颁发机构 > 证书中安装了证书。
    7. 如果受信任的根证书颁发机构和个人文件夹中未安装证书,则必须手动安装。
  4. 使用正确的指纹和主机名创建 HTTPS 侦听器。
  5. 以下命令行包含用于创建 HTTPS 侦听器的示例语法。winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="host_name";CertificateThumbprint="certificate_thumbprint"}注:忽略证书指纹中的空格。
  6. 测试连接。
  7. 以下命令行包含用于测试连接的示例语法。winrs -r:https://host_name:port_number -u:user_name -p:password hostname

二、PowerShell 命令生成方式

确定你的打包应用的主体

若要使用证书给你的应用包签名,证书中的“主体”必须 匹配应用清单中的“发布者”部分。

例如,你应用的 AppxManifest.xml 文件中的“身份”部分应如下所示:

<Identity Name="Contoso.AssetTracker" 
    Version="1.0.0.0" 
    Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>

使用 New-SelfSignedCertificate 创建证书

使用 New-SelfSignedCertificate PowerShell cmdlet 创建自签名证书。 New-SelfSignedCertificate 包含用于自定义的几个参数,但是鉴于本文目的,我们将侧重于创建可使用 SignTool 的简单证书。 有关更多示例和此 cmdlet 的使用,请参阅 New-SelfSignedCertificate

基于上一示例中的 AppxManifest.xml 文件,你应该使用下面的语法创建证书。 在提升的 PowerShell 提示符中:

New-SelfSignedCertificate -Type Custom -Subject "CN=Contoso Software, O=Contoso Corporation, C=US" -KeyUsage DigitalSignature -FriendlyName "Your friendly name goes here" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}")

请注意以下有关某些参数的详细信息:

  • KeyUsage: 此参数定义证书可用于什么。 对于自签名证书,此参数应设置为 DigitalSignature

  • TextExtension: 此参数包括以下扩展的设置:

    • EKU (扩展) :此扩展表示可能使用已认证的公钥的其他用途。 对于自签名证书,此参数应包含扩展字符串 "2.5.29.37={text}1.3.6.1.5.5.7.3.3", 指示证书将用于代码签名。

    • 基本约束:此扩展指示证书是否是证书颁发机构 (CA) 。 对于自签名证书,此参数应包含扩展字符串 "2.5.29.19={text}", 该字符串指示证书是最终实体 (而不是 CA) 。

运行此命令后,证书将被添加到本地证书存储中,如“-CertStoreLocation”参数中指定。 该命令的结果还将生成证书的指纹。

你可以使用以下命令在 PowerShell 窗口中查看你的证书:

 ls Cert:\LocalMachine\My

三、Openssl 生成方式

1、安装

地址:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

2、生成私钥-使用des3算法

openssl genrsa -des3 -out private-rsa.key 1024

会让输入私钥密码,最终生成private-rsa.key私钥文件,结果如下:

 

3、使用私钥文件生成证书申请文件

openssl req -new -x509 -key private-rsa.key -days 750 -out public-rsa.cer

过程中需要私钥密码,并且填入一些信息:

 

4、生成pfx即PKCS格式证书

openssl pkcs12 -export -name test-alias -in public-rsa.cer -inkey private-rsa.key -out user-rsa.pfx

四、Window IIS生成证书

1、若没有找到IIS 证书,先进行IIS服务安装

 2、打开IIS管理器,打开服务器证书

 

3、根据提示创建自签证书

 

五、EKU (OID)扩展

        增强型密钥用法(EKU)就是定义该证书的用途,由一串十进制数字组成,也称 Object ID或OID,常见的OID有:服务器验证: 1.3.6.1.5.5.7.3.1 (serverAuth),客户端验证: 1.3.6.1.5.5.7.3.2 (clientAuth),代码签名: 1.3.6.1.5.5.7.3.3 (codeSigning),电子邮件加密: 1.3.6.1.5.5.7.3.4 (emailProtection)等等。

六、参考

Passwordless WinRm Backdoor Based On Certification

OID description for 2.5.29.37 - Extended key usage

为程序包签名创建证书 - MSIX | Microsoft Docs

使用openssl创建https证书 - 云+社区 - 腾讯云

https://jingyan.baidu.com/article/37bce2be782daa1003f3a247.html

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值