首页 > 编程知识 正文

sqlyog名称和证书密钥,密钥证书位置

时间:2023-05-05 20:58:47 阅读:165269 作者:4877

证书摘要证书主要包括颁发者和被授予者的信息、颁发者的公钥以及CA机构对这些信息的认证

主要内容:

**版本**标识用于证书的X.509标准的版本。 这将影响可以在证书中指定的信息。 到目前为止定义的版本有三个。 *序列号**颁发证书的实体负责在证书中指定序列号,以将其与该实体颁发的其他证书区分开。 这个信息用途很多。 例如,如果证书被吊销,序列号将列在证书吊销列表(CRL )中。 **签名算法标识符**ca用于标识对证书签名时使用的算法。 **颁发者名称**签署证书的实体的X.500名。 通常是中情局。 使用此证书意味着信任签署证书的实体。 注意:颁发者可能会签署自己的证书,例如根或顶级CA证书。 *有效期**各证书只在有限的期限内有效。 该有效期用开始日期和结束日期表示,可以缩短到几秒或一个世纪。 选择的有效期取决于许多因素,包括用于签名证书的私钥的使用频率以及为证书支付的金钱。 这是实体可以依赖公钥值而不危及相关私钥的预期时间。 **主体名称**证书可以识别公钥的实体名称。 此名称使用的是X.500标准,因此在internet中必须是唯一的。 这是实体的特征名称(DN )。 例如,CN=Java Duke,OU=Java Software Division,O=Sun Microsystems Inc,C=US ) )这些实体的通用名称、组织单位、组织和国家。 **主体公钥信息**这是命名实体的公钥,并包括与指定公钥所属公钥密码系统的算法标识符相关联的所有密钥参数。 请注意,PEM DER仅用于编码,不指定为证书的编码,也可以是密钥编码

各种名词和文件后缀X.509 -这是证书标准,主要定义了证书中应该包含哪些内容。 两种编码方式: PEM - Privacy Enhanced Mail,打开查看文本格式,以'-----BEGIN . '开头,'-----END .

Apache和*NIX服务器偏向于使用这种编码格式。

灾难编码规则,打开后无法以二进制格式读取。 查看DER格式证书信息: OpenSSL x509-in certificate.der-inform der-text-noout

Java和Windows服务器偏向于使用这种编码形式

各种文件的扩展名: CRT - CRT应该是certificate的3个字,但其实也是证书的意思。 *常见于nix系统。 既是PEM代码也是DER代码。 大多数既是PEM码,也是CER -、certificate、证书,常见于Windows系统。 同样的,大多数应该是DER代码. key。 通常用于存储公钥或私钥,并非X.509证书。 代码可以是PEM或der.CSR-certificatesigningrequest。 这不是证书,而是对证书的签名要求。其核心内容是公钥,当然还附加了一些其他的信息。 在生成申请时,同时产生私有密钥PFX/P12 - predecessor of PKCS#12,对于*nix服务器,公共CRT和KEY存储在单独的文件中,但Windows的IIS使它们驻留在一个PFX中crt cer约等于x509证书,key保存公钥或私钥。 csr是证书签名请求,当我意识到PFX中包含证书和私钥的PKCS系列还有PKCS系列时,我感到很混乱。

PCs系列是public-keycryptographystandards,是RSA制定的一系列标准。 请注意,前面写的文件的后缀等不是标准,而是只有X509和PKCS可以称为标准。

PKCS中常用的是PKCS1 PKCS8 PKCS12

pkcs#1:http://www.Sina.com/公钥算法定义加密和签名机制,主要用于组织PKCS#7中的数字签名和数字信封。 PKCS#8:描述公钥算法的私钥和可选属性集等私钥信息的格式。 注意pkcs8不仅仅表示RSA,所以记述比PKCS1更具有通用性的PKCS#12 :个人信息交换语法标准。 显示了用于打包用户公钥、私钥、证书和其他相关信息的语法。 总结: PK CS1、8、12根据情况都可以作为文件形式。 PKCS1描述基本的密钥格式,PKCS8也描述该密钥,但是格式与1不同,PKCS12与PFX文件等价。 生成包含证书和私钥的OpenSSL#pkcs#1的公钥OpenSSL genrsa-out pkcs1_ private.PEM 1024 OpenSSL RSA-in pkcs1_ private.PEM-RSA public

kcs1_public.pem查看私钥 openssl rsa -in rsa_private_key.pem -text -noout查看公钥openssl rsa -pubin -in rsa_public_key.pem -text# 由PKCS#1的私钥,生成PKCS#8的公私钥openssl pkcs8 -topk8 -inform PEM -in pkcs1_private.pem -outform PEM -nocrypt -out from_pkcs1_private_to_pkcs8_private.pemopenssl rsa -in pkcs1_private.pem -pubout -out from_pkcs1_private_to_pkcs8_public.pem# 由PKCS#8的私钥,生成PKCS#1的公私钥openssl rsa -in from_pkcs1_private_to_pkcs8_private.pem -out from_pkcs8_private_to_pkcs1_private.pemopenssl rsa -in from_pkcs1_private_to_pkcs8_private.pem -RSAPublicKey_out -out from_pkcs8_private_to_pkcs1_public.pem# 由PKCS1公钥生成PKCS#8公钥:openssl rsa -RSAPublicKey_in -in pkcs1_public.pem -pubout -out from_pkcs1_public_to_pkcs8_public.pem# 由PKCS8公钥生成PKCS#1公钥:openssl rsa -pubin -in from_pkcs1_private_to_pkcs8_public.pem -RSAPublicKey_out -out from_pkcs8_public_to_pkcs1_public.pem产生证书请求 注意PKCS1 8都可以openssl req -new -key private_key.pem -out rsaCerReq.csr产生证书 注意PKCS1 8都可以openssl x509 -req -days 3650 -in rsaCerReq.csr -signkey private_key.pem -out rsaCert.crt从证书获得公钥:openssl x509 -in rsaCert.crt -noout -pubkey > public_key.pem生成PKCS12openssl pkcs12 -export -inkey serverprikey.pem -in server.pem -password pass:"123456" -out server_nocret.pfx从PKCS12获得证书和私钥openssl pkcs12 -in server_nocret.pfx -nocerts -nodes -out alicekey.pemopenssl pkcs12 -in server_nocret.pfx -nokeys -out cert.pem查看pkcs12内容 -nodes:因为私钥在在输出前会输出加密结果,所以需要nodes来保证不用打密码和不加密openssl pkcs12 -in server_nocret.pfx -nocerts -nodes -out alicekey.pem RSA 随机找两个质数 P 和 Q ,定义n= p*q计算 n 的欧拉函数 m= φ(n) =(p-1)*(1-1),为什么是这样我就不懂了 ,即表示在mdhh的数中有多少个与n构成互质,随机选择一个整数 e,条件是1< e < m,且 e 与 m 互质。计算d : e*d % m=1 ,虽然是二元一次方程,但通过拓展axdc算法可以得出,反正这个算法我也不懂,能算出来就能算出来吧公钥 (n,e) 私钥(n,d)

为什么难以破解:
在已知 公钥 N E 的情况下,想要知道 私钥的额D 就需要知道m,而 m=(p-1)(Q-1),想要知道P Q
就只能对 N 进行分解,而大整数的因式分解是难以破解的,所以保证了安全

PKCS的结构

之前我一直奇怪为什么私钥可以转换出公钥,以为是RSA算法的原理所导致,但看起来原理并不满足私钥算出公钥的操作,所以我觉得问题出在PKCS内容上:

PKCS1 的公钥结构:RSAPublicKey ::= SEQUENCE { modulus INTEGER, -- n publicExponent INTEGER -- e}PKCS1 的私钥结构:RSAPrivateKey ::= SEQUENCE { version Version, modulus INTEGER, -- n publicExponent INTEGER, -- e privateExponent INTEGER, -- d prime1 INTEGER, -- p prime2 INTEGER, -- q exponent1 INTEGER, -- d mod (p-1) exponent2 INTEGER, -- d mod (q-1) coefficient INTEGER, -- (inverse of q) mod p otherPrimeInfos OtherPrimeInfos OPTIONAL}PKCS1 公钥:PublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, PublicKey BIT STRING}AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL}PKCS8私钥PrivateKeyInfo ::= SEQUENCE { version Version, algorithm AlgorithmIdentifier, PrivateKey BIT STRING}AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL}

可以看出PKCS1 的私钥包含了密钥产生的所有元素,所以能算出公钥就不奇怪了,至于PKCS8 看起来不包含,但为什么也可以,我想应该只是结构不同,内容应该都是有的

参考 https://blog.csdn.net/xy01090... 
注意这个文章的漫画有一个错误的地方,证书并不是CA私钥对公司公钥加密的结果 
而应该是如下面这个文章的说法,证书=s_KeyPub + s_Info + ca_Info + enc_s_Hash 
s_KeyPub:公司公钥 
s_Info:公司信息 
ca_Info:ca机构 
enc_s_Hash:ca对公司的认证,=ca_pri(hash(s_KeyPub + s_Info + ca_Info))

证书在通讯中如何加签和验签,

https://zhuanlan.zhihu.com/p/...

阐述PKCS1 PKCS8的区别,以及PKCS的结构

https://www.shangyang.me/2017...

描述PKCS

https://qsiofttt.iteye.com/bl...

密钥之间转换:

https://xuanxuanblingbling.gi...

RSA:

https://www.zhihu.com/questio... 文章写的很好,感谢原作者,本文转自: https://segmentfault.com/a/1190000020811310?utm_source=tag-newest

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。