openssl

说明

openssl是一个基于ssl/tls协议完成的一个套件,用来帮助一些本身不具备加密功能的软件完成加密

openssl使用

命令用法:

openssl command [ command_opts ] [ command_args ]

COMMAND:
	base64 :以64个可打印字符显示二进制数据[a-z] [A-Z] + / (在编码不够时,向前补使用“=”作为补位标志)
	enc :对称算法加解密
		常用算法:3des, aes, blowfish, twofish
		选项:
		-e 加密[默认] -加解密算法 -in file
		-d 解密 -加解密算法 -in file -out file
			openssl enc -e -des3 -in sysctl.conf -out my_sysctl.conf #指定des3对称加密算法进行加密
			openssl enc -d -des3 -in my_sysctl.conf -out my_sysctl.conf.bak #指定des3对称加密算法进行解密
	genrsa :用于生成私钥
		openssl genrsa [args] [numbits]
			args:
				-des: CBC模式的DES加密
				-des3: CBC模式的3DES加密
				-aes128: CBC模式的AES128加密
				-aes192: CBC模式的AES192加密
				-aes256: CBC模式的AES256加密
			-out file :输出证书私钥文件
			[numbits] :密钥长度
	rsa :RSA密钥管理(例如:从私钥中提取公钥)
		openssl rsa [options] outfile
			options :
				-pubout :输出公钥文件
				-text :以text形式打印密钥key数据
				-noout :不打印密钥key数据
				-out file :待输出密钥文件
				-in file :待处理密钥文件
	req :生成证书签名请求(CSR)
		openssl req [options] outfile
			options 
				-out file :待输出文件
				-passin :用于签名待生成的请求证书的私钥文件的解压密码
				-key file :用于签名待生成的请求证书的私钥文件
				-new :新的请求
				-x509 :输出一个x509格式的证书(CA自签证书)
				-days :x509证书的有效时间
			openssl req -noout -text -in server.csr #查看csr细节
	dgst :生成文件特征码
		算法类型:md5,sha[ 1 | 224 | 256 | 384 | 512 ]
		openssl dgst -md5 /etc/fstab 
	passwd :生成散列密码
		选项:
			-1 :使用基于MD5的BSD密码算法
			-5 :使用sha256密码算法
			-6 :使用sha512密码算法
			-salt STRING :使用指定盐
			-in file :从该文件读取密码
			-stdin :从标准输入读取密码
	rand :生成伪随机数
		openssl rand -base64|-hex NUM
		使用-hex,每个字符为十六进制,相当于4位二进制,出现的字符数为NUM*2
		使用-base64,出现的字符数是NUM*3/4(会补”=“)

建立私有CA实现证书申请颁发

建立私有CA:

OpenCA:OpenCA开源组织使用Perl对OpenSSL进行二次开发而成的一套完善的PKI免费软件

openssl:相关包 openssl和openssl-libs

证书申请及签署步骤:

  1. 生成证书申请请求

  2. RA核验

  3. CA签署

  4. 获取证书

openssl的配置文件:/etc/pki/tls/openssl.cnf

要求填写的内容
描述

Country Name(2 letter code)

使用国际标准组织(ISO)国码格式,填写两个字母的国家代号。中国填写CN

State or Province Name(full name)

省份,比如填写Beijing

Locality Name(eg, city)

城市,比如填写Beijing

Organization Name(eg, company)

组织单位,比如填写公司名称的拼音

Organizational Unit Name(eg, section)

部门名字,比如填写dev

Common Name(eg, your websites domain name)

申请的证书的域名,比如example.com

Email Address

邮件地址

A challenge password

可以不填

An optional company name

可以不填

三种策略:match匹配、optional可选、supplied提供

  • match:要求申请填写的信息跟CA设置信息必须一致

  • optional:可有可无,跟CA设置信息可不一致

  • supplied:必须填写这项申请信息

CA相关目录文件

目录 :/etc/pki/CA/certs,crl,newcerts,private

文件 :/etc/pki/CA/index.txt,serial

构建私有CA流程

  1. 创建CA所需要文件

  2. 生成CA私钥

  3. 生成CA自签名证书

申请证书并颁发证书

  1. 为需要使用证书的主机生成生成私钥

  2. 为需要使用证书的主机生成证书申请文件

  3. 在CA签署证书并将证书颁发给请求者

  4. 查看证书中的信息

吊销证书

  1. 在客户端获取要吊销的证书的serial

  2. 在CA上,根据客户提交的serial与subject信息,对比检验是否与index.txt文件中的信息一致,吊销证书

  3. 指定第一个吊销证书的编号,注意:第一次更新证书吊销列表前,才需要执行

  4. 更新证书吊销列表

  5. 查看crl文件

Last updated