密钥证书生成和管理总结XRacoon

OpenSSH是SSH协议的开源版本(SSH:SecureSHell)。使用SSH透过计算机网络实现加密通讯,可以进行远程控制,在计算机之间传送文件等等。SSH传输的数据都进行了加密,比telnet,rcp,ftp,rlogin,rsh等以明文传输密码的工具更安全。

OpenSSH提供了实现SSH协议的很多工具。其中ssh-keygen用于生成,管理和转换用于认证的密钥和证书。

ssh-keygen

OpenSSL是一个强大的安全套接字层密码库,包括了加密算法,常用密钥和证书管理,SSL协议等功能。OpenSSL提供的命令非常多,这里只简单列出OpenSSL生成密钥和证书的一些操作(Window需要以管理员身份运行cmd)。

v1.0.1+密钥默认采用PKCS#8格式(之前版本为PEM)。

查看openSSL版本

opensslversionopensslversion-aenc对称加密

(1)opensslgenrsa[options][bits_num]

默认生产的密钥格式为PEM。openssl默认只生成了私钥文件,当需要提取公钥时使用rsa命令。

示例

#生成RSA密钥对。位长度为2048,保持到rsakey0.pem文件中。opensslgenrsa-outrsakey0.pem2048#生成RSA密钥对。使用DES3加密,密钥使用密码保护,位长度为1024opensslgenrsa-des3-outrootca.key-passoutpass:1234561024

(2)opensslgenpkey[options]v1.0.1+

#生成RSA密钥,位长度为2048,格式为DERopensslgenpkey-algorithmRSA-outrsapriKey.pem-pkeyoptrsa_keygen_bits:2048-outformDER

(3)opensslreq请求时生成新的密钥对

opensslreq-x509-days365-newkeyrsa:2048-keyoutprivate.pem-outpublic.pem-nodes

(1)opensslrsa[options]outfile

#提取密钥公钥到单独的文件opensslrsa-inrsakey0.pem-pubout-outrsakey0.pub#转换密钥格式(DER->PEM)opensslrsa-inrsakeypair.der-informDER-outrsakeypair.pem#改加密算法,移除密码保护opensslrsa-inrsakeypair.pem-passinpass:123456-des3-outrsakeypair1.pem

(2)opensslpkey[options]v1.0.1+

(3)将PEM格式密钥转换成JavaJCE能使用的DER格式密钥的另一种方式

opensslpkcs8-topk8-informPEM-outformDER-in-out-nocrypt

(4)OpenSSL公钥和OpenSSH公钥格式转换

OpenSSL生成的公钥格式和OpenSSH公钥格式不一致,把OpenSSL生成的公钥用于配置SSH连接,验证会失败。

OpenSSL公钥(PEM)格式为:

-----BEGINPUBLICKEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7vbqajDw4o6gJy8UtmIbkcpnkO3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1QWPdspTBKcxeFbccDwIDAQAB-----ENDPUBLICKEY-----OpenSSH公钥格式为:

ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAAAgQC7vbqajDw4o6gJy8UtmIbkcpnkO3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1QWPdspTBKcxeFbccDw==

ssh-keygen-y-fpriKey.pem>sshPubkey.pub将OpenSSL格式公钥转换成OpenSSH格式ssh-keygen-i-mPKCS8-fsslPubKey.pub〉sshPubKey.pub#-m支持PEM,PKCS8,RFC4716将OpenSSH格式公钥转换成OpenSSL格式公钥ssh-keygen-e-mPEM-fsshPubKey.pub>sslPubKey.pub#-m支持PEM,PKCS8,RFC4716

opensslrsautl[options]

使用RSA加密时,要求被加密的数据长度与RSA密钥长度一致,数据过短时会补齐。过长时会分段加密。实际应用中很少会使用非对称加密算法对大的文件进行加密操作,而是使用对称加密算法加密文件,然后再使用<非对称加密算法>对<对称算法的密钥>进行加密。

示例:

#使用公钥加密opensslrsautl-intest.txt-outtest_enc.txt-inkeyrsakeypair.pub-pubin-encrypt#使用私钥解密opensslrsautl-intest_enc.txt-outtext_dec.txt-inkeyrsakeypair.pem-decrypt#使用私钥签名opensslrsautl-intest.txt-outtest_sign.txt-inkeyrsakeypair.pem-sign#使用公钥验证签名opensslrsautl-intest_sign.txt-outtest_unsign.txt-inkeyrsakeypari.pub-pubin-verify

opensslreq-x509-new-days365-keyrsakey.pem-outcert0.crt会要求输入区别名DN的各项信息(国家,城市,组织,姓名,email等)。

opensslreq-new-keyrsakey1.pem-outsubcertreq.csr会要求输入区别名DN的各项信息(国家,城市,组织,姓名,email等),还需要额外属性:密码和可选公司名。

opensslx509-req-insubcertreq.csr-CAcert0.crt-CAkeyrsakey0.pem-CAcreateserial-days365-outsubcert.crt

也可创建一个ca的配置文件,通过ca管理子命令来签发子证书(未试验)

opensslca-configca.config-outuser.crt-infilesuser.csr

opensslpkcs12-export-insubcert.crt-inkeyrsakey1.pem-outsubcert.p12需要输入pkcs12文件密码。

opensslx509-noout-text-inrootca.crt

opensslverify-CAfilerootca.crtsubcert.crt用rootca.crt的公钥验证subcert.crt中的签名

从证书中提取公钥

opensslx509-incert.pem-noout-pubkey>pubkey.pem提取密钥对

opensslpkcs12-incert.pfx-nocerts-nodes-outkeypari.pem从PKCS#8提取公钥

opensslreq-inpublic.pem-noout-pubkey

查看pkcs7签名内容的证书信息

opensslpkcs7-in-informDER-print_certs

keytool是Java提供的密钥、证书和证书库管理工具。可以完成生成密钥,生成证书等各种操作。

keytool的子命令如下:

-certreq生成证书请求-changealias更改条目的别名-delete删除条目-exportcert导出证书-genkeypair生成密钥对-genseckey生成密钥-gencert根据证书请求生成证书-importcert导入证书或证书链-importkeystore从其他密钥库导入一个或所有条目-keypasswd更改条目的密钥口令-list列出密钥库中的条目-printcert打印证书内容-printcertreq打印证书请求的内容-printcrl打印CRL文件的内容-storepasswd更改密钥库的存储口令

还可以使用keytool-command_name-help查看各个子命令的帮助信息

keytool-importkeystore-srckeystoresubcert.p12-destkeystoresubcert.jks-srcstoretypepkcs12需要输入目标库的密码和源库的密码,如果jks库文件不存在的话会自动生成。

keytool-importcert-keystoresubcert.jks-aliasrootca-filerootcert.crt需要输入目标库密码和是否信任添加的证书。-alias可以省略,如果jks库文件不存在的话会自动生成。

证书库或者说密钥库中即可以存放密钥也可存放证书,如果只包含证书(证书中有公钥)而不包含私钥,这样生成的库就是trust库。

查看证书指纹

keytool-list-keystore-alias

等待补充......

先整理下三个概念:

可见PGP和GPG是基于同一个标准的两套独立的工具,都能处理加解密、签名等功能,GPG是开源免费的。

-a以ASCII输出

功能选择

--sign|-s可以结合--encrypt或--symmetric或两者同时使用。使用默认的密钥。选择密钥使用--local-user和--default-key选项。

--clearsign签名,内容可读。选择密钥使用--local-user和--default-key选项。

--detach-sign|-b创建独立的签名

--encrypt|-e非对称加密,可以结合--sign,--symmetric或两者同时使用

-c|--symmetric对称加密。默认输出扩展名为.gpg,可以用-o指定输出文件,默认加密算法为CAST5,可以结合--cipher-algo指定算法。也可以配合--sign或--encrypt或两者同时使用。

gpg-cmyfile[-omyfile.gpg]#对称加密gpg-dmyfile.gpg-omyfile.decrypt#对称解密gpg--genkey#交互式创建密钥gpg--list-keys#查看已有的密钥gpg-e-a-rprivkeyfile[-odescfile]#加密(需要公钥)。-e|--encryt,-aASCII输出,-r指定加密的用户ID。gpg-odescfile--decryptfile.asc#解密(需要私钥),会提示输入密钥密码。gpg-opubkeyfile--exportKeyID[-a]#导出公钥(证书),如果未指定KeyID,则备份所有公钥,-aASCII输出否则为二进制格式。gpg-osubkeyfile--export-secret-keysKeyID[-a]#导出私钥gpg--importsubkeyfile#导入私钥gpg-osignedfile-sfile#签名(需要私钥)gpg-otxtsignedfile--clearsignfile#保护原文的签名gpg--verifysignedfile#验证签名(需要公钥)gpg-oencryptsignedfile-serprikeyfile#签名并加密(恢复时验证,不能通过--verify直接验证)gpg-ofile--decryptencryptsignedfile#恢复加密的签名文件并验证gpg-ofilesign-b-afile#-b分离的签名,生成文件只包含签名信息gpg--verifyfilesignfile#分离的签名验证gpg--edit-keyuserID#编辑公钥,进入自命令环境:fpr查看指纹,sign签署公钥(加密是不再产生警告),check检查已有的钥匙的签名,quit退出

PGP是OpenPGP标准的闭源商业版本。pgp提供了图形化工具和命令行工具,命令行工作主要有以下几个:

pgpk-g#交互式生产密钥pgpk-xkeyname[-opubkeyfile]#导出公钥pgpk-apubkeyfile#将密钥加入密钥环(pubring.pkr文件)pgpk-rkeyname#从密钥环删除公钥pgpe-rkeynameoriginfile[-oencryedfile][-a]#加密,-a表示生成ASCII文档而不是二进制pgpvencrypedfile-odecryedfile#解密(需要密钥密码)pgps-ukeynameoriginfile[-osignedfile][-a]#签名(需要密钥密码),-a表示生成ASCII文档而不是二进制pgpvsignedfile#签名验证并恢复原始文件pgp-kaKEYS#导入密钥pgpfile.asc#验证签名

PuTTY包含多个工具。

本文主要内容是密钥的管理,所有只说明PuTTYgen的使用。

PuTTYgen使用的密钥存储格式类似于OpenSSL(密钥文件扩展名.ppk,其中同时包含公钥和私钥)。

公钥格式

----BEGINSSH2PUBLICKEY----Comment:"imported-openssh-key"AAAAB3NzaC1yc2EAAAABIwAAAQEA5of83WbXgRVTUFsOI49wacuEp253YuzZW1Lk......vw7Oc6o357ipDPgWk9c82s+7Asov4OgX5o6hg3R7418Gc0lkqw==----ENDSSH2PUBLICKEY----私钥格式(.ppk)

PuTTY-User-Key-File-2:ssh-rsaEncryption:aes256-cbcComment:imported-openssh-keyPublic-Lines:6AAAAB3NzaC1yc2EAAAABIwAAAQEA5of83WbXgRVTUFsOI49wacuEp253YuzZW1Lk...4行.........vw7Oc6o357ipDPgWk9c82s+7Asov4OgX5o6hg3R7418Gc0lkqw==Private-Lines:14xc2m3BR30d7GZG/QVatu8Xm5PfYYMXRfPobGtbqLsWWI9Wzfjs/InEVFPcG8kJ6v...12行...GANvUGQcgCyQTKVnqXmSMwPNZkqkJYZmRA43PBfiufVLV4JItNxY8ol+enUfWwdePrivate-MAC:647a57a82038c05113fbd6a1758871b138a7a001

可以导入和导出OpenSSH和ssh.com格式的私钥(Conversions菜单下)。程序主界面中也会显示OpenSSH格式的公钥。

-----------------------------未整理----------------------------------

OpenSSL生成的密钥文件(.pem),签发请求文件(.csr)和证书文件(.cet)都是用纯文本格式保存了Base64编码后的信息(PEM格式)。可以用文本编辑器打开,内容如下:

-----BEGINRSAPRIVATEKEY-----MIIEogIBAAKCAQEArlUX2v998Y+Ek/AzoDdsbW7ILyRpwXVBMDqmOf3ZZpbP/4vo.....省略若干行......buL0a0BOFi7dyJjWgtEyYTFQgYSeezHl/+XyOhuJlTyvZWUpm5w=-----ENDRSAPRIVATEKEY-----

首行和末尾行会被忽略,首行中显示了文件中存储的信息类型。

查看签名信息

jarsigner-verify-verbose-certs

pem是最常用的私钥和证书存储格式。其中通常会包含‘—–BEGINXXXX—–”and“—–ENDXXXX—–”字符串,中间存放了Base64编码过的二进制数据。多个PEM证书或私钥可以包含在一个文件中,但最好还是将各个证书和私钥分开存放。扩展名可能为.pem,.crt,.cer,.key。

主要用在Java,所有类型的证书和私钥都能用DER格式存放。文件中直接存储二进制数据,未进行Base64编码,无可读性的描述文字。扩展名可能为.cer,.der。

包含“—–BEGINPKCS—–”&“—–ENDPKCS7—–”字符串,只能存储证书和链证书,不能存放私钥。内容经过Base64编码,扩展名可能为.p7b,.p7c

可以加密的文件,可在一个文件中存放多个证书或密钥,主要用于证书和私钥的导入导出。扩展名一般为.pfx,.p12

PEM转DER

opensslx509-outformder-incertificate.pem-outcertificate.der

PEM格式证书转P7B

opensslcrl2pkcs7-nocrl-certfilecertificate.cer-outcertificate.p7b-certfileCAcert.cer

PEM格式转PFX

opensslpkcs12-export-outcertificate.pfx-inkeyprivateKey.key-incertificate.crt-certfileCAcert.crt

DER转PEM

opensslx509-informder-incertificate.cer-outcertificate.pem

P7B转PEM

opensslpkcs7-print_certs-incertificate.p7b-outcertificate.cer

P7B转PFX(先转成PEM)

$opensslpkcs7-print_certs-incertificate.p7b-outcertificate.cer$opensslpkcs12-export-incertificate.cer-inkeyprivateKey.key-outcertificate.pfx-certfileCAcert.cer

PFX转PEM(PFX中所有内容被存放到一个pem格式文件中)

opensslpkcs12-incertificate.pfx-outcertificate.cer-nodes

PKCS#8定义了私钥信息语法和加密私钥语法,X509定义证书规范,密钥通常使用DER和PEM进行编码存储,Java中JCE使用的是DER。openssl主要用的是PEM编码。PEM相对DER可读性更强,以BASE64编码,外围包上类似----BEGINRSAPRIVATEKEY----。JCE没有对PEM直接支持,但是第三方那个包如bouncycastle可以解析。

很多SSH公钥使用openssh格式。其内容为ssh-rsa打头,RSA-1024结尾,中间是Base64编码:

ssh-rsaAAAAB3Nza.........................cySYqQ==RSA-1024

THE END
1.HR认证知多少本认证体系目前提供以下三类人力资源管理证书: 1、准注册人力资源管理师认证资格(共包括6个专业岗位任职资格) 注册人力资源管理师认证共包括企业培训、员工任用、绩效管理、薪酬福利和保险、劳动关系、职业生涯规划共六个准注册人力资源管理师认证模块,每完成一个模块的培训,经考试合格,并符合相关条件的,即取得该专业岗位...https://weibo.com/p/1001593731940552384462
2.国家认证认可监督管理委员会“制造”升级“智造”,推动质量管理变革创新2024-09-30 质量认证保障我国有机产业健康发展2024-09-18 质量提升助企解困,站稳全国连锁销售市场2024-08-27 服务 互联网+服务 业务专栏 行政许可 认证结果 从业机构 从业人员 认证规则 认可结果 数据统计 监督执法 ...https://www.cnca.gov.cn/
3.青牛证书智能管控系统专门针对建筑业企业定制,解决证书混乱,统计查询难,协同难等证书难题,让工作更轻松、更高效。 信息准确 | 去向明确 | 处理及时 | 分类统计 提升管理模式 企业组织架构人员信息一目了然,全方位提升企业管理效率。 人才储备 | 人员更新 | 组织架构 打造企业专属 ...http://www.certms.cn/
4.数字证书管理服务(原SSL证书)SSL数字证书HTTPS加密服务器证书阿里云为您提供证书服务,在云上签发DigiCert、GlobalSign、GeoTrust、CFCA、WoSign证书,实现网站HTTPS化,使网站可信,防劫持、防篡改、防监听。并对云上证书进行统一生命周期管理,简化证书部署,一键分发到云上产品。https://www.aliyun.com/product/cas/
1.如何:使用MMC管理单元查看证书还可以使用证书管理器工具查看、导出、导入和删除证书。 查看本地设备的证书 从“开始”菜单中选择“运行”,然后输入“certlm.mmc”。 此时将显示本地设备的“证书管理器”工具。 若要查看证书,请在左侧窗格中的“证书 - 本地计算机”下,展开要查看的证书类型对应的目录。 https://docs.microsoft.com/zh-cn/dotnet/framework/wcf/feature-details/how-to-view-certificates-with-the-mmc-snap-in
2.[CIO]12个顶级项目管理证书——2018cio需要考什么证[CIO] 12个顶级项目管理证书——2018 本文列举了12个顶级项目管理证书,包括PMP、CAPM、CSM等,适用于不同级别的IT专业人士,旨在提升项目管理技能和价值。这些证书由PMI、敏捷联盟、CompTIA等机构颁发,涵盖了从基础到高级的项目管理知识和实践要求。 摘要由CSDN通过智能技术生成...https://blog.csdn.net/dongxiao1306/article/details/81133486
3.管理证书Was this helpful? YesNohttps://docs.digicert.com/zh/certcentral/manage-certificates.html
4.管理证书用于管理证书的典型工作流 下面是用于管理网络证书的常见任务。 将组织添加到网络 要执行这些任务,您必须是管理员。 撤销证书 要执行这些任务,您必须是管理员。 导出证书 创始人和参与者组织必须导入和导出证书 JSON 文件才能创建网络。 请注意以下信息: https://docs.oracle.com/zh-cn/cloud/paas/blockchain-cloud/usingoci/manage-certificates.html
5.证书管理腾讯云证书管理 最后更新时间:2024-07-11 17:45:00 直播域名使用简单的 HTTP 协议,将 HTTP 用 SSL/TLS 协议进行封装成为 HTTPS,实现数据加密传输。若需批量管理多个域名,为其配置 SSL 证书,可通过证书管理来实现批量查询和配置 SSL 证书。 配置原理 域名配置 SSL 证书,目的是传输过程中对用户的关键信息进行加密,基于...https://intl.cloud.tencent.com/zh/document/product/267/41317
6.SSL中的证书到期监视证书监视器配置设置可以在管理控制台上通过选择安全>SSL 证书和密钥管理>管理证书到期。。 在管理证书到期面板上,您可以执行下列功能。 使用启用检查复选框来启用或禁用证书监视器检查。 缺省情况下,已启用证书监视器检查。 在标签为到期替换阈值的框中设置到期阈值。 到期替换阈值是可以替换证书的证书到期之前的天数,...https://www.ibm.com/docs/zh/was/8.5.5?topic=dcccis-certificate-expiration-monitoring-in-ssl-1
7.公司证书管理制度(精选15篇)在社会发展不断提速的今天,我们每个人都可能会接触到制度,制度是要求成员共同遵守的规章或准则。那么拟定制度真的很难吗?下面是小编为大家收集的公司证书管理制度,欢迎大家分享。 公司证书管理制度 1 一、目的 本办法适用于本企业为满足国家、地方、行业对职业资格要求所取得的公司职业资质证书(以下简称证书)的管理。https://m.unjs.com/fanwenwang/gzzd/20220720090235_5313763.html
8.2024年工商管理学院招生专业介绍◆可获证书:大学英语等级证书、普通话等级证书、计算机等级证书、人力资源管理师(四级) 证书、1+X门店数字化运营与管理证书、助理会计师、1+X商务数据分析证书等。 ◆就业方向:学生毕业以后,初期能够胜任中小微企业的行政专员、人事专员、销售内勤、营销推广、客户服务及连锁企业门店经营管理等业务工作,通过一段时期的适...https://www.scpcfe.cn/adm/info/1082/2378.htm
9.iOS云管理式证书DistributionManaged和DevelopmentManaged...看到这里,差不多就明白了,在更新xcode13后,苹果上线了一种新的证书——云管理式证书,包括Distribution Managed和Development Managed。在打包或真机运行的时候可以使用云管理式证书对其应用进行签名,而且这种证书可以自动发起轮换,即不需要关心他的过期时间。同时,既然叫云管理证书,那也就不需要下载到本地钥匙串了。整个...https://www.jianshu.com/p/51595ca43815
10.深圳CA网站SSL全球服务器证书 了解详情> 掌信签 掌信签是基于移动终端应用程序运行,集密码设备、密码运算和电子认证为一体,符合移动端电子认证需求,为用户提供身份认定、电子签署、证据固化、移动安全存储、一键仲裁等功能服务。 了解详情> 电子签 深圳CA电子签为客户提供电子合同全生命周期智能管理服务,帮助企业实现降本增效,通过合...https://www.szca.com/