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
