monicholas 2016-04-28
OpenSSL的两个主要功能:生成证书请求和生成自签名证书
一、OpenSSL卸载与安装
卸载时切勿直接yum remove openssl*,系统中很多软件都和openssl有依赖关系,会把一大堆系统需要的库文件删掉的,会导致很多服务和命令都没法用,所以,想使用新版本,最简单就是直接安装新版本,不要删掉旧版本
实验环境:RedHat Linux 5.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 #指定证书有效期限
openssl x509 –text –in ca.srt #查看证书信息
④、编辑/usr/local/ssl/ssl/openssl.cnf
至此,一个私有CA即建立完成了
3、生成证书请求
1、生成私钥
2、导出公钥
3、生成请求
(其中
应与私有ca中的信息相同)
4、到私有ca的主机上签名
openssl ca –in httpd.csr –out httpd.crt -days +365
更多OpenSSL相关内容可以查看以下的有用链接:
OpenSSL 的详细介绍:请点这里
OpenSSL 的下载地址:请点这里