openssl加解密文件
加密文件
解密文件
Keys
创建 RSA Key
创建 DSA Key
生成证书
简明使用示例
建立CA密钥
使用CA密钥自签署CA证书
创建证书申请
证书签署
撤销证书

openssl加解密文件

加密文件

openssl enc -bf -e -a -in /etc/passwd -out passwd.bf
enc -bf  使用blowfish算法
-e       加密
-a       使用ASCII格式进行编码
-in      指定要加密的文件
-out     指定加密后输出的文件

解密文件

openssl enc -bf -d -a -in passwd.bf

同样可以使用 -out 指定输出到文件。

Keys

参考: http://www.openssl.org/docs/HOWTO/keys.txt

创建 RSA Key

一个 RSA key 可以用作 encryption 和 signing 。

openssl genrsa -des3 -out privkey.pem 2048

使用 -des3 参数,会创建一个需要密码的 key ,如果使用这个key作为服务器的 certificate,那么最好不要密码,去掉 -des3 参数。

创建 DSA Key

DSA Key 只能作为 signing 用途。生成一个 DSA Key 需要两步:

openssl dsaparam -out dsaparam.pem 2048
openssl gendsa -des3 -out privkey.pem dsaparam.pem

同样 -des3 参数需要一个密码,可以去掉。

生成证书

openssl req -new -key privkey.pem -out cert.csr

用前面生成的 privkey.pem 文件生成一个证书请求,拿着这个请求文件就可以到证 书颁发机构(CA)申请一个数字证书。

可以自己给自己颁发数字证书:

openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095

现在可以使用privkey.pem和cacert.pem作为自己的公私密钥了。

简明使用示例

建立CA密钥

openssl genrsa -des3 -out ca.key 1024 # 创建密钥
openssl rsa -noout -text -in ca.key   # 查看证书

使用CA密钥自签署CA证书

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
openssl x509 -noout -text -in ca.crt

创建证书申请

openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr
openssl req -noout -text -in client.csr

证书签署

修改openssl.cnf文件,创建serial文件,输入当前八进制的serial number。如:01

openssl ca -keyfile ca.key -cert ca.crt -in client.csr -out client.pem

撤销证书

openssl ca -keyfile ca.key -cert ca.crt -remove client.pem