Ubuntu下OpenSSL证书配置指南
OpenSSL是Ubuntu系统常用的开源SSL/TLS工具,可用于生成证书、配置加密通信。以下是从安装到配置Web服务器的完整流程:
首先确保系统已安装OpenSSL(Ubuntu默认仓库包含该工具):
sudo apt update
sudo apt install openssl
安装完成后,通过以下命令验证版本(确认安装成功):
openssl version
输出示例:OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)。
证书的核心是私钥(private key)和数字证书(certificate),以下是两种常见场景的生成步骤:
自签名证书无需第三方CA(证书颁发机构),适用于本地开发或内部环境:
openssl genrsa -aes256 -out server.key 2048
系统会提示输入私钥密码(后续使用证书时需输入,如需取消密码可省略-aes256参数)。openssl req -new -key server.key -out server.csr
按提示输入信息(**Common Name(CN)**需与域名或服务器IP一致,如localhost或192.168.1.100)。openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
最终生成server.key(私钥)和server.crt(证书)。若需权威CA认证(如Let’s Encrypt),需先生成CA根证书,再用其签名服务器证书:
openssl genrsa -out ca.key 4096
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
(-days 3650表示有效期10年,-x509表示直接生成自签名CA证书)。openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
最终生成server.crt(CA签名的服务器证书)。OpenSSL生成的证书需配置到Web服务器(如Apache、Nginx)才能启用HTTPS。
sudo a2enmod ssl
/etc/apache2/sites-available/default-ssl.conf):sudo nano /etc/apache2/sites-available/default-ssl.conf
修改以下内容(替换为实际路径):<VirtualHost *:443>
ServerName yourdomain.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
# 其他配置(如DocumentRoot、Directory等)
</VirtualHost>
sudo a2ensite default-ssl
sudo systemctl restart apache2
若遇到端口冲突(如443已被占用),需检查/etc/apache2/ports.conf。/etc/nginx/sites-available/default):sudo nano /etc/nginx/sites-available/default
添加或修改server块(替换为实际路径):server {
listen 443 ssl;
server_name yourdomain.com;
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; # 推荐加密套件
root /var/www/html;
index index.html;
}
sudo nginx -t # 检查配置语法
sudo systemctl restart nginx
```。
yourdomain.com为服务器IP或域名,执行:openssl s_client -connect yourdomain.com:443
若输出中包含Verify return code: 0 (ok),说明证书配置成功。server.key、ca.key)需设置600权限,仅root用户可访问:sudo chmod 600 /etc/ssl/private/*.key
sudo apt update && sudo apt upgrade openssl
以上步骤覆盖了Ubuntu下OpenSSL证书的生成、配置与验证,可根据实际需求调整(如生成客户端证书、配置双向认证等)。