openssl的两个主要功能:生成证书请求和生成自签名证书


一、openssl卸载与安装

 卸载时切勿直接yum remove openssl*,系统中很多软件都和openssl有依赖关系,会把一大堆系统需要的库文件删掉的,会导致很多服务和命令都没法用

所以,想使用新版本,最简单就是直接安装新版本,不要删掉旧版本

实验环境:redhat5.8

latest:openssl-1.1.0-pre5.tar.gz

old:openssl-0.9.8

openssl下载地址:ftp://ftp.openssl.org/source/openssl-1.1.0-pre5.tar.gz

新版本安装时要求系统的perl版本为5.10.0以上,目前perl最新版本为v5.22.1,故首先安装编译perlv5.22.1

 perlv5.22.1下载地址:http://www.cpan.org/src/5.0/perl-5.22.1.tar.gz

下载完后解压安装:

      

  tar zxvf perl-5.22.1.tar.gz
  cd perl-5.22.1
  ./Configure –des –Dprefix=/usr/local/perl    #指定编译安装的位置
  make
  make test
  make install

 到此,新版本的perl即安装完成

 替换原来的版本:  

     

 which perl  
 /usr/bin/perl                  #查看perl服务链接路径
 rm -f /usr/bin/perl  
 ln –s/usr/local/perl/bin/perl /usr/bin/perl
 perl –v                            #查看系统当前使用的版本



升级安装完perl后,即可开始编译安装openssl

下载后解压:

tar zxvf openssl-1.1.0-pre5.tar.gz
cd openssl-1.1.0-pre5
./config --prefix=/usr/local/ssl shared zlib-dynamic 
      --prefix      #指定编译安装的位置
      shared   #创建共享库
      zlib-dynamic      #当openssl需要时会调用zlib库文件
make
make test
make install


vim /etc/ld.so.conf

/usr/local/ssl/lib             #添加新版本的库文件到系统库配置文件中,使系统开机时能自动读取


ldconfig            #使系统重读库文件


mv /usr/bin/openssl /usr/bin/openssl.bak
ln –s /usr/local/ssl/bin/openssl /usr/bin/openssl     #备份并替换链接文件


二、openssl使用:

1、加密/解密文件:openssl enc

    加密:openssl enc –des3 –a –salt –in SFILE_NAME –out DFILE_NAME

                    -des3     #加密使用的算法

                     -a       #用base64处理数据,可选

                     -salt     #加密时加入杂质,增加破解难度,可选

             

           解密:openssl enc –des3 –a –salt -d –in DFILE_NAME –out SFILE_NAME

                     -d       #解密

(更多用法openssl enc –help查看)


2、实现私有CA:

     ①、生成私钥

   openssl genrsa

                可选选项:

        -out 文件:指定私钥保存到的文件

             数字:指定私钥长度

             -算法:指定加密私钥的算法(默认使用rsa)

openssl genrsa –out capri.key 1024      #私钥默认权限为600


   ②、从私钥中导出公钥

opensslrsa –in capri.key –pubout –out capub.key

 ③、生成自签署证书

openssl req

     -new     #生成证书请求

     -x509    #生成自签名证书

     -key     #使用已有私钥文件

     -newkey   #在生成证书请求或自签名证书时自动生成密钥,生成的密钥名称由-keyout指定;-             newkey后面的参数格式为type:bits(rsa:1024) type指定算法;bits指定密钥长度

     -out     #指定证书位置

    -days     #指定证书有效期限

wKioL1cizL3QT2qrAABkX4dgz3A562.png

openssl x509 –text –in ca.srt          #查看证书信息


  ④、编辑/usr/local/ssl/ssl/openssl.cnf

wKiom1cizC6zzYklAAA365psEa0285.png

至此,一个私有CA即建立完成了

3、生成证书请求

     1、生成私钥

     2、导出公钥

     3、生成请求

     wKiom1cizGezdm4rAAAtQVCXq8g868.png

(其中 

wKioL1cizYrTok_DAAAMnYeOvrg815.png

应与私有ca中的信息相同)

  4、到私有ca的主机上签名

openssl ca –in httpd.csr –out httpd.crt  -days +365