OpenSSL是用于传输层安全性(TLS)和安全套接字层(SSL)的协议,功能强大且齐全的商业级工具包。它也是一个通用加密库。

https://www.openssl.org/

下载 tar.gz 包

https://www.openssl.org/source/

当前最新版本包为 openssl-3.0.0-alpha10.tar.gz

解压编译安装

解压源代码

tar xzvf  openssl-3.0.0-alpha10.tar.gz

进入源代码目录

cd openssl-3.0.0-alpha10

使用如下命令编译和安装

./Configure

make

sudo make install

安装结束后,使用 openssl version 命令测试是否安装成功

.../openssl/openssl-3.0.0-alpha10$ openssl version
openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory

如果遇到 openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory 的报错问题,使用如下两个命令解决

sudo ln -s /usr/local/lib/libssl.so.3 /usr/lib/libssl.so.3
sudo ln -s /usr/local/lib/libcrypto.so.3 /usr/lib/libcrypto.so.3

.../openssl/openssl-3.0.0-alpha10$ sudo ln -s /usr/local/lib/libssl.so.3 /usr/lib/libssl.so.3
.../openssl/openssl-3.0.0-alpha10$ sudo ln -s /usr/local/lib/libcrypto.so.3 /usr/lib/libcrypto.so.3
.../openssl/openssl-3.0.0-alpha10$ openssl version
OpenSSL 3.0.0-alpha10 7 Jan 2021 (Library: OpenSSL 3.0.0-alpha10 7 Jan 2021)

使用 openssl version 出现版本号的时候说明安装成功了

OpenSSL 生成密钥

生成私钥

openssl genrsa -out app_private_key.pem   2048

私钥转为PKCS8格式

openssl pkcs8 -topk8 -inform PEM -in app_private_key.pem -outform PEM -nocrypt -out app_private_key_pkcs8.pem

生成公钥

openssl rsa -in app_private_key.pem -pubout -out app_public_key.pem

以上命令执行后在执行目录下会分别生成 app_private_key.pemapp_private_key_pkcs8.pemapp_public_key.pem 三个文件。