OpenSSL在Ubuntu上的安全通信机制与用法
一 核心作用与原理
二 快速上手 命令行验证与测试
sudo apt-get update && sudo apt-get install opensslopenssl version -aopenssl s_client -connect example.com:443 -servername example.comopenssl req -x509 -newkey rsa:4096 -keyout server_key.pem -out server_cert.pem -days 365 -nodesopenssl s_server -cert server_cert.pem -key server_key.pem -wwwopenssl s_client -connect localhost:4433https://localhost:4433 查看返回页面(s_server的-www会返回简单HTML)。/usr/lib/ssl/misc/CA.pl -newca(按提示设置密码与Common Name)openssl req -newkey rsa:2048 -out server.csr -keyout server.key
openssl ca -in server.csr -out server.crtopenssl req -newkey rsa:2048 -out client.csr -keyout client.key
openssl ca -in client.csr -out client.crtopenssl s_server -cert server.crt -key server.key -CAfile demoCA/cacert.pem
openssl s_client -connect <IP或域名>:4433 -CAfile demoCA/cacert.pem三 在Nginx或应用中的实际使用
listen 443 ssl;ssl_certificate /etc/ssl/certs/server.crt;ssl_certificate_key /etc/ssl/private/server.key;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;sudo apt-get install libssl-devSSL_load_error_strings、OpenSSL_add_ssl_algorithms)、创建SSL_CTX(如TLS_client_method())、建立socket并用SSL_set_fd绑定、调用SSL_connect完成握手、使用SSL_read/SSL_write收发数据、最后SSL_shutdown与资源释放。gcc app.c -o app -lssl -lcrypto。四 安全配置与运维要点
openssl s_client检查证书链、域名匹配、吊销状态与握手细节;必要时结合日志与抓包定位问题。