Lyraa's Blog

使用 OpenSSL 生成自签名证书

2024-10-16

生成过程:

使用 OpenSSL 生成自签名证书

以下为 Ubuntu 环境下生成自签名 SSL 证书的具体过程:

1、生成 CA 私钥:

openssl genrsa -out cakey.pem 4096 && chmod 400 cakey.pem

2、生成 CA 根证书(根据提示输入信息):

openssl req -new -x509 -key cakey.pem -out cacert.pem

或者(直接输入信息,其中最重要的是 /CN=Domain)

openssl req -new -x509 -days 36500 -key cakey.pem -out cacert.pem -subj "/C=US/ST=State/L=City/O=Orgnization/OU=OrgnizationUnit/CN=Domain"

3、生成服务器私钥:

openssl genrsa -out nginx.key 4096

4、生成证书签名请求文件(CSR)Common Name 填写要保护的域名,比如:*.qhh.me

openssl req -new -key nginx.key -out nginx.csr

或者(直接输入信息,其中最重要的是 /CN=Domain)

openssl req -new -key nginx.key -out nginx.csr -subj "/C=US/ST=State/L=City/O=Orgnization/OU=OrgnizationUnit/CN=Domain"

5、使用 openssl 签署 CSR 请求,生成服务器证书:

openssl x509 -req -days 36500 -in nginx.csr -CA cacert.pem -CAkey cakey.pem -set_serial 01 -out nginx.crt

至此自签名证书生成完成,最终需要:nginx.key 和 nginx.crt

配置 Nginx 使用自签名证书:

server {
listen 80;
server_name domain;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
ssl_certificate ssl/nginx.crt; # 前面生成的 crt 证书文件
ssl_certificate_key ssl/nginx.key; # 前面生成的证书私钥
server_name domain;
location / {
root /var/www-html;
index index.html;
}
}

fin

Tags: OpenSSL

扫描二维码,分享此文章