Linux中openssl用法(搭建CA服务器)

简介:

对称加密算法: 
    DES(源于IBM公司):支出64位的加密 
    3DESDES的加强版,利用DES连续加密3次 
   AES:支持128、256、512等不同位数的加密 
    Blowflsh 
    Linux中的工具: 
    openssl enc 
    gpg(pgp) 
公钥加密算法: 
    RSA,ELGamal:实现加密和签名 
    DSA:只能实现签名 
    Linux中的工具: 
   gpg 
    openssl rsautl 
单向加密算法: 
    MD5:默认长度为128位 
    SHA1:默认长度为160位 
    CRC-32:循环冗余校验码 
    Linux中的工具: 
    md5sum 
    sha1sum 
    openssl dgst

一、Linux中的openssl 
#openssl version                  #####查看版本 
#openssl crl                           #####证书吊销列表 
#openssl speed
                   #####对于某种加密算法的加密速度测试

openssl enc -des3 -salt -a -in plaintest -out ciphertext.des3 
    -a:输出的为ASCII码 
    -salt:随机数 
#openssl enc -des3 -salt -a -in ./fstab -out fstab.des3

openssl enc -d -des3 -salt -a -in ciphertext.des3 -out FILE 
    -d:解密

openssl rand [-base64] NUM 
    -base64:使用base64进行编码,默认输出的是二进制 
openssl base64        对某一个数据进行base64编码 
#echo -n "redhat" | openssl base64        #####不要传递换行符

#md5sum test               #####计算文件的校验码 
#sha1sum test    
注:两者长度不同。

openssl dgst -sha1 FILE 
#openssl dgst -sha1 test 计算文件的校验码   等同sha1sum test

【1】.公钥加密中: 
openssl genrsa SKLONG                                  #####生成密钥 
#openssl genrsa 1024 > ./mykey.sec          #####生成长度为1024的密钥对,显示的为私钥,并将其保存到mykey.sec中,公钥是从私钥中提取出来的

openssl genrsa -des3 -out SECRET.FILE 1024 
    -out:生成后保存到哪 
    "1024":指密钥长度 
#openssl genrsa -des3 -out ./mysk.sec 1024            #####直接保存到mysk.sec 
#openssl genrsa -in ./mysk.sec -des3 -out ./myk.sec       #####生成后对其进行加密

提取公钥: 
#openssl rsa -in ./mykey.sec -pubout
                #####不输入保存到哪个文件,则输出到屏幕上

注:保存密钥的文件的权限应该是600或者400。

在一个子shell中执行一个命令使用()括起来 
#(umask 077;openssl genrsa 1024 > ./mykey.sec)

【2】.使用openssl把自己的作为一个CA 
CA配置文件所在:/etc/pki/ 
CA配置文件:/etc/pki/tls/openssl.cnf 
步骤:1.编辑 /etc/pki/tls/openssl.cnf 
[ CA_default ] 
dir        = /etc/pki/CA

#cd /etc/pki/CA/ 
#(umask 077;openssl genrsa 2048 > private/cakey.pem)
        #####这里存放CA的密钥,固定写法"private/cakey.pem"

2.自己作为CA服务器:申请发证并签证: 
#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
        #####"cacert.pem"也是固定写法 
>(国家代码) 
>(省份) 
>(城市) 
>(组织名) 
>(公司的部门) 
>(用户名或者服务器名即访问该服务器的域名) 
>(邮箱地址) 
    -new:表示这是一个新的请求 
    -req:发出请求 
    -key:指出私钥位置,会自动提取出公钥 
    -days:指定有效期限

3.生成工作目录: 
#mkdir certs crl newcerts
            #####生成证书列表,吊销列表,新的申请 
#touch index.txt serial                 #####生成索引,序列号 
#echo 01 > serial                           #####给序列号一个初始值

4.为申请的证书签发: 
#openssl ca -in httpd.csr -out httpd.crt    #####默认期限为1年 
    -in:后跟申请的证书 
    -out:签发的证书,后缀为.crt


一切执行完后,大功告成,CA就配置好了

5.我们用另外一台机器向其申请证书: 
#(umask 077;openssl genrsa 1024 > httpd.key)               #####生成密钥对 
#openssl req -new -key httpd.key -out httpd.csr
            #####发起一个新的证书请求固定写法文件后缀为".csr"

然后将这个新申请的证书,后缀为".csr"的文件给CA服务器,通过其签发,生成后缀为".crt"的文件,将其导入到自己的服务器中即可!

6.吊销一个证书:

#openssl ca -revoke httpd.crt








本文转自 向阳草米奇 51CTO博客,原文链接:http://blog.51cto.com/grass51/798505,如需转载请自行联系原作者
目录
相关文章
|
9天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
12天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 <<EOF binary put file.txt quit EOF ```
27 4
|
20天前
|
JSON Kubernetes Linux
Linux环境签发CA证书和K8s需要的证书
Linux环境签发CA证书和K8s需要的证书
23 0
|
27天前
|
Linux Shell 网络安全
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
【Shell 命令集合 网络通讯 】Linux 与SMB服务器进行交互 smbclient命令 使用指南
40 1
|
5天前
|
Linux 数据安全/隐私保护
Linux基础与服务器架构综合小实践
【4月更文挑战第9天】Linux基础与服务器架构综合小实践
1038 6
|
17天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器
|
17天前
|
Linux
Linux安装bind9搭建自己的域名服务器
Linux安装bind9搭建自己的域名服务器
11 0
|
20天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0
|
27天前
|
网络协议 安全 Shell
【Shell 命令集合 系统设置 】Linux 从远程时间服务器获取当前日期和时间 rdate命令 使用指南
【Shell 命令集合 系统设置 】Linux 从远程时间服务器获取当前日期和时间 rdate命令 使用指南
31 0
|
27天前
|
Shell Linux 网络安全
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
29 0