通过openSSL生成自签名的SSL证书

admin通过openSSL生成自签名的SSL证书已关闭评论条评论 948 次浏览

自签名证书:就是 指的根证书,就是颁发者:和颁发给: 是相同的。证书的签名是用证书里的公钥对应的私钥进行的签名。这样的证书除非是受信任的颁布机构颁发f,一般是不被第三方信任。一般用于内部使用及测试使用。

下面介绍生成证书的方法:

1. 生成私

要创建SSL证书,需要私钥和证书签名请求(CSR)。您可以使用一些生成工具或向CA申请生成私钥,私钥是使用RSA和ECC等算法生成的加密密钥。生成RSA私钥的代码示例:

openssl genrsa -des3 -out server.key 2048,随后该命令会提示您输入口令。

生成的server.key为加密私钥文件,私钥就保存在这个文件内,一般文件内的私钥已被加密,只有通过口令才能得到原私钥。

genrsa: 用于生成RSA私钥   -des3:表示加密算法(生成的私钥为了安全要进行加密),这里选择des3算法和(根据 口令,盐值,迭代次数 推算出来对称加密密钥)对私钥做对称加密。生成私钥时不带加密算法时,就不会提示让输入口令(即密码)。-out server.key 指生成的私钥文件 1024指生成的私钥长度,还可以选2048,4096,默认是1024。

可选择的生成加密私钥的算法

为了私钥安全最好选择2048位的密钥长度。

2.生成CSR

私钥生成后,您的私钥文件现在将作为 server.key 保存在您的当前目录中,并将用于生成CSR(因为csr这个里面包含公钥,所以这里需要私钥来生成对应的公钥)。自签名证书的CSR的代码示例:openssl req -nodes -new -key server.key -out server.csr。然后需要输入几条信息,包括组织、组织单位、国家、地区、城市和通用名称。通用名称即域名或IP地址。

输入此信息后,server.csr 文件将位于当前目录中,其中包含 server.key 私钥文件。

 3. 颁发证书

最后,使用server.key(私钥文件)和server.csr 文件生成新证书(.crt)。以下是生成新证书的命令示例:openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt。最后,在您的当前目录中找到server.crt文件即可。

双击打开上面的文件。

 

 开始的时候生成私钥时选择的密钥长度是1024,所以这里对应的公钥的长度也是1024。为了安全一般都是用2048。

这里先生成私钥,然后根据私钥生成对应的公钥,(但比如cer证书之类的是先生成一对密钥,即公钥和私钥,然后再申请证书,这里生成SSL证书有点不同)生成的公钥在server.crt证书内。根据私钥可以推出公钥。但是根据公钥不可以推出私钥。这就是为啥公钥是可以公开的。但是私钥一定要安全保存。
 


分类目录