openssl安装,openssl生成私钥以及openssl生成证书

openssl安装

首先安装perl工具,下载地址:

Download & Install Perl - ActiveStateDownload Perl 5.32 and 5.28 from ActiveState & get precompiled Perl distribution. ActiveState Perl is free to download.https://www.activestate.com/activeperl/downloads

我下载了 这个版本(安装过程下一步下一步即可)

我安装在 C:\Perl64

然后下载openssl:

/source/index.htmlhttps://www.openssl.org/source/

下载压缩包

下载后解压在 perl 同一个目录下

安装Visual Studio2013

下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux

三个都安装完成后,检查环境变量

C:\Program Files (x86)\Microsoft Visual Studio12.0\VC\bin;

C:\Perl64\bin;

c:\windows\system32

接下来开始关键部分

1、打开VC开发人员命令工具:(以管理员身份运行)

 使用cd命令将目录指向D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin(PS:自己的VC安装路径), 命令行键入vcvars32,运行vcvars32.bat..完成后进入OpenSSL源码的目录(C:\openssl)

2、编译配置 (cd到OpenSSL目录下)

在命令行中键入"perl configure VC-WIN32 no-asm --prefix=c:\openssl"(PS:--prefix=c:\openssl命令为指定安装位置)

输出一大串后

3、创建Makefile文件

输入nmake命令 这次会输出很多东西,稍微等命令执行完。

4、然后输入 nmake test

可以打开openssl目录下的 install 文件看里面的说明安装过程来安装

这里有不同操作系统下的安装步骤

5、接下来 输入 nmake install

上诉4中执行结果最后 会有个 pass ,表示通过 即可install了 ,如果没通过需要查看test中输出的错误并解决。

openssl生成私钥

介绍

openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护。

语法

openssl genrsa[-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]

选项说明:

-out filename:私有密钥输出文件名,缺省为标准输出。

-passout arg:输出文件口令保护存放方式。

-f4:指定E为0x1001;

-3:指定E为3;

-rand file(s):随机种子。

-engine id:硬件引擎。

numbits:生成密钥的位数。必须是本指令的最后一个参数。如果没有指明,则产生512bit长的参数。

-des|-des3|-idea|-aes128|-aes192|-aes256:指定私钥口令保护算法,如果不指定,私钥将被明文存放。

一般使用

[cpp] view plain copy

  1. E:\OpenSSL\foo>openssl genrsa -out rsa_pri.pme  
  2. Loading 'screen' into random state - done  
  3. Generating RSA private key, 512 bit long modulus  
  4. .++++++++++++  
  5. ...............++++++++++++  
  6. e is 65537 (0x10001)  

从输出可以看出,密钥长度是512bit。我们也可以指定密钥长度,密钥长度越长越安全,但使用密钥进行加解密时所耗费的时间也会变长。非对称密钥提高安全性的同时也带来了算法所耗费的大量时间,非对称密钥不对大块数据进行加密,应用领域是数字签名,密钥分发等小数据加密。

numbits   密钥长度(单位bit)

[cpp] view plain copy

  1. openssl genrsa -out rsa_pri.pem 1024  

-passout arg

对生成的rsa私钥文件施加密码保护,例如:使用idea算法对私钥文件进行密码保护。

[cpp] view plain copy

  1. openssl genrsa  -idea -passout pass:123 -out rsa_pri.pem  

-F4 / -3    指数(我不知道,算法里面的东西吧),默认是65537,例如上例中输出的最后一句话,e is 65537 (0x10001)

[cpp] view plain copy

  1. E:\OpenSSL\foo>openssl genrsa  -3  -out rsa_pri.pem 2000  
  2. Loading 'screen' into random state - done  
  3. Generating RSA private key, 2000 bit long modulus  
  4. ......................+++  
  5. .............+++  
  6. e is 3 (0x3)  

使用openssl生成证书

创建私钥

openssl genrsa -out ca-key.pem -des 1024

文件名为 ca-key.pem 长度为1024,以des加密方式存放 ,不加-des是明文方式

 

密码 我输了1234

文件默认生成在当前目录下

 

通过CA私钥生成CSR

csr:

对于服务器SSL证书, 在申请服务器数字证书时一定要先在服务器上生成 CSR 文件 ( Certificate Signing Request 证书签名请求文件)

openssl req -new -key ca-key.pem -out ca-csr.pem

 

通过CSR文件和私钥生成CA证书

openssl x509 -req -in ca-csr.pem -signkey ca-key.pem -out ca-cert.pem

 

ok 这样就创建好了CA证书

下面这个是一个例子,创建服务器端证书,在csr生成是加入了配置文件,用CA证书来创建服务器的证书,

最后加入了一个打包证书的操作。

创建服务器端证书

为服务器生成私钥

openssl genrsa -out server-key.pem -des 1024

密码1234

利用服务器私钥文件服务器生成CSR

openssl req -new -key server-key.pem -config openssl.cnf -out server-csr.pem

新建一个配置文件 openssl.cnf 输入以下配置信息:

[req]

distinguished_name = req_distinguished_name

req_extensions = v3_req

[req_distinguished_name]

countryName = Country Name (2 letter code)

countryName_default = CN

stateOrProvinceName = State or Province Name (full name)

stateOrProvinceName_default = BeiJing

localityName = Locality Name (eg, city)

localityName_default = YaYunCun

organizationalUnitName = Organizational Unit Name (eg, section)

organizationalUnitName_default = Domain Control Validated

commonName = Internet Widgits Ltd

commonName_max = 64

[ v3_req ]

# Extensions to add to a certificate request

basicConstraints = CA:FALSE

keyUsage = nonRepudiation, digitalSignature, keyEncipherment

subjectAltName = @alt_names

[alt_names]

#注意这个IP.1的设置,IP地址需要和你的服务器的监听地址一样

IP.1 = 127.0.0.1

---------------------------------配置文件结束----------------------------

通过服务器私钥文件和CSR文件生成服务器证书

openssl x509 -req -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -in server-csr.pem -out server-cert.pem -extensions v3_req -extfile openssl.cnf

打包证书

openssl pkcs12 -export -in server-cert.pem -inkey server-key.pem -certfile ca-cert.pem -out server.pfx

export密码1234

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

felin7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值