在 Linux 上用 OpenSSL 配置证书,常见场景有:
✅ 自签名证书(测试/内网)
✅ CA 签发证书(更规范)
✅ Nginx / Apache 使用证书
下面按最常用流程一步步说明。
# Debian / Ubuntu
sudo apt update
sudo apt install openssl
# CentOS / Rocky / Alma
sudo yum install openssl
检查版本:
openssl version
openssl genrsa -out server.key 2048
openssl req -new -x509 -key server.key -out server.crt -days 365
交互式填写:
✅ 适合:
# CA 私钥
openssl genrsa -out ca.key 2048
# CA 证书
openssl req -x509 -new -key ca.key -out ca.crt -days 3650
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
⚠️ Common Name 必须填域名或 IP
openssl x509 -req \
-in server.csr \
-CA ca.crt \
-CAkey ca.key \
-CAcreateserial \
-out server.crt \
-days 365
| 文件 | 作用 |
|---|---|
.key |
私钥(必须保密) |
.crt |
证书 |
.csr |
证书签名请求 |
.pem |
文本格式证书(可包含 key) |
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
location / {
root /usr/share/nginx/html;
}
}
重启:
sudo nginx -t
sudo systemctl restart nginx
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/server.crt
SSLCertificateKeyFile /etc/httpd/ssl/server.key
</VirtualHost>
openssl pkcs12 -export \
-out server.pfx \
-inkey server.key \
-in server.crt \
-certfile ca.crt
openssl x509 -noout -modulus -in server.crt | md5sum
openssl rsa -noout -modulus -in server.key | md5sum
✅ 两个值必须一致
# 使用 Let's Encrypt
sudo apt install certbot
sudo certbot certonly --standalone -d example.com
如果你愿意,可以告诉我:
我可以给你完全定制的一套配置命令。