openssl

来自百合仙子's Wiki
跳转到导航 跳转到搜索


常用命令

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

参见

外部链接

参考资料