openssl
跳转到导航
跳转到搜索
常用命令
s_client
使用 TLS 协议连接到服务器,通信使用标准输入/输出。
openssl s_client -connect host:port [-quiet]
生成证书
生成可用于 HTTPS 的自签名证书:
openssl req -new -x509 -days 365 -nodes -out /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem
另见使用自签发证书解锁网易云音乐海外限制 | iTimothy。
生成证书请求及私钥
RSA:
openssl req -new -newkey rsa:2048 -nodes -out star_lilydjwg_me.csr -keyout star_lilydjwg_me.key -subj "/C=CN/ST=Beijing/L=Beijing/O=Lilydjwg/OU=Lilydjwg/CN=*.lilydjwg.me"
椭圆曲线(EC):[1]
# 选择一条曲线
openssl ecparam -list_curves
# 生成私钥
openssl ecparam -out filename.key -name sect571r1 -genkey
# 生成证书请求
openssl req -new -key filename.key -nodes -out filename.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Lilydjwg/OU=Lilydjwg/CN=*.lilydjwg.me"
查看证书信息
openssl x509 -in file.crt -text [-noout]
显示指纹:
openssl x509 -in file.crt -noout [-sha256]
加密与解密
使用 256 位 AES CBC 模式加密与解密:
openssl enc -k password -aes-256-cbc -in filename -out encrypted.aes
openssl enc -d -k password -aes-256-cbc -out filename -in encrypted.aes
表示加密的 -e
选项是默认的, -d
表示解密。选项 -a
表示对加密数据使用 base64 编码。
为 Travis-CI 加密环境变量:
openssl rsautl -encrypt -pubin -inkey <(curl -sS https://api.travis-ci.org/repos/lilydjwg/nvchecker/key | jshon -e key -u) <<<'NAME=value' | base64 -w0
效率
要测试 AES-NI CPU 指令集支持,可对比以下两项的测试结果:
openssl speed aes-256-cbc
openssl speed -evp AES256
导出 TLS 密钥
使用 LD_PRELOAD 来启用密钥导出功能(比如给 Wireshark 用于解密流量),比如这个程序,然后
LD_PRELOAD=libsslkeylog.so SSLKEYLOGFILE=keys ./program
参见
外部链接
- SSL数字证书生成方法 - 妙音
- 那些被歪曲的开源软件和OpenSSL的真实历史_科技_钛媒体
- 从无法开启 OCSP Stapling 说起 | JerryQu 的小站
- 构建自己的CA | 桃子的博客志
- openssl基本密码学操作
- openssl证书相关