openssl 证书 及ssh密匙

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openssl 证书 及ssh密匙相关的知识,希望对你有一定的参考价值。

参考技术A 公钥和私钥都可以用来加密数据,相反用另一个解开。
公钥加密数据,然后私钥解密的情况被称为 加密解密。
私钥加密数据,公钥解密一般被称为 签名和验证签名。

RSA/DSA

一般的公钥不会用明文传输给别人的,正常情况下都会生成一个文件,这个文件就是公钥文件,然后这个文件可以交给其他人用于加密,但是传输过程中如果有人恶意破坏,将你的公钥换成了他的公钥,然后得到公钥的一方加密数据,不是他就可以用他自己的密钥解密看到数据了吗,为了解决这个问题,需要一个公证方来做这个事,任何人都可以找它来确认公钥是谁发的.这就是CA,CA确认公钥的原理也很简单,它将它自己的公钥发布给所有人,然后一个想要发布自己公钥的人可以将自己的公钥和一些身份信息发给CA,CA用自己的密钥进行加密,这里也可以称为签名.然后这个包含了你的公钥和你的信息的文件就可以称为证书文件了.这样一来所有得到一些公钥文件的人,通过CA的公钥解密了文件,如果正常解密那么机密后里面的信息一定是真的,因为加密方只可能是CA,其他人没它的密钥啊.这样你解开公钥文件,看看里面的信息就知道这个是不是那个你需要用来加密的公钥了.

密钥文件的格式用OpenSSL生成的就只有PEM和DER两种格式,
PEM的是将密钥用base64编码表示出来的,直接打开你能看到一串的英文字母
DER格式是二进制的密钥文件

参考: 网址

不区分环境,使用以下命令生成新的ssh key:

选择生成文件以及key密码之后,会生成两个文件,其中已 pub 为后缀的为共钥

SSH默认位置为:
Windows命令提示符:

Windows / GNU / Linux / macOS / PowerShell上的Git Bash:

参考: gitlab.com

Openssl 生成ECC证书及密钥

前面一期介绍了windows下安装Openssl的方法。在此基础上,本期介绍利用openssl指令生成CA证书的方法,我们暂定CA名称为BJ2020,证书签名算法为ECDSA,待生成证书中的信息为下述内容:
国家:CN
所在省份:BeiJing
所在区域:HaiDian
生成证书的指令如下所述:
步骤一:生成CA密钥对
openssl ecparam -out BJ2020.key -name prime256v1 -genkey
步骤二:生成CA 请求文件
openssl req -key BJ2020.key -new -out BJ2020.req -subj /C="CN"
/ST="BeiJing"/L="HaiDian"
步骤三:生成CA证书
openssl x509 -req -in BJ2020.req -signkey BJ2020.key -out BJ2020.pem -days 36500
步骤四:CA证书由 pem 格式转为 der 格式
openssl x509 -outform der -in BJ2020.pem -out BJ2020.der

以上是关于openssl 证书 及ssh密匙的主要内容,如果未能解决你的问题,请参考以下文章

openssl、ssh-keygen 和 cfssl 之间的区别

openssh与openssl是啥关系

我实践:自建CA及证书颁发(openssl)

OpenSSL生成v3证书方法及配置文件

Openssl 生成ECC证书及密钥

Security基础:OpenSSL及证书服务邮件TLS/SSL加密通信