生成nginx证书

2024-01-26 18:02:06 来源/作者: 这里教程网整理 /

生成Nginx SSL证书的基本步骤如下:


准备证书签发请求文件(CSR -- 即证书签名申请(Certificate Signing Request)):

openssl req -new -nodes -sha256 -newkey rsa:2048 -keyout server.key -out server.csr

Organization Name:公司名称,可以是中文或英文。 Organizational Unit Name:部门名称,可以是中文或英文。 Country Code:申请单位所属国家,只能是两个字母的国家码。例如,CN - 中国,US - 美国JP - 日本UK - 英国IN - 印度DE - 德国FR - 法国RU - 俄罗斯 CA - 加拿大 State or Province Name:州名或省份名称,可以是中文或英文。 Locality Name:城市名称,可以是中文或英文。 Common Name:申请 SSL 证书的具体网站域名。 Email Address:可选择不输入。 Challenge Password:可选择不输入。

这将生成私钥server.key和证书签名请求文件server.csr。

# 将CSR文件提交给证书颁发机构,购买SSL证书。

# 比如可以使用Let's Encrypt免费SSL证书。


# Let's Encrypt颁发的证书将包含一个证书文件(server.crt)和一个CA证书打包文件(ca-bundle.crt)。

# 在Nginx中配置SSL:

# server { # listen 443 ssl; # server_name server.com; # ssl_certificate /path/to/server.crt; # ssl_certificate_key /path/to/server.key; # ssl_trusted_certificate /path/to/ca-bundle.crt; # # other SSL configs # }

# 重新加载Nginx使配置生效。

# 这样就可以使用SSL证书加密Nginx的HTTPS流量。可以调整Nginx SSL相关参数进一步增强安全性。

# Let's Encrypt可以自动化申请和更新证书,也可以考虑使用certbot等客户端工具简化操作。


生成自签名证书

使用OpenSSL通过CSR文件生成自签名证书:

$openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

这里的-days参数指定证书的有效期。

安装证书

将生成的server.crt证书文件和server.key私钥文件安装到你的Web服务器上。

配置Web服务器

在Nginx/Apache等服务器中配置使用这个证书和私钥。

加载配置

重新加载Web服务器使配置生效。

现在你就可以使用这个自签名证书在本地进行HTTPS访问测试了。

需要注意的是,自签名证书不会被浏览器信任,在访问网站时浏览器会给出警告。如果需要被浏览器信任,还需购买正式的SSL证书。

查看证书内容

好的,可以使用以下命令来查看SSL证书的内容:

使用openssl工具

$openssl x509 -in server.crt -text -noout

这将以文本格式显示证书的所有内容,包括公钥、签名算法、颁发者、有效期等。

使用keytool(Java环境)

keytool -printcert -file server.crt

keytool也可以打印证书详细信息。

使用浏览器

大多数浏览器也允许你查看证书详细信息:

Chrome:点击锁图标 -> 证书 -> 详细信息

Firefox:点击锁图标 -> 显示网站信息 -> 显示证书

Safari:偏好设置 -> 高级 -> 显示证书

IE:点击锁图标 -> 查看证书

使用OpenSSL的GUI工具

OpenSSL Suite等图形界面工具也可以显示证书所有字段。

主要检查证书的颁发者、有效期、使用的公钥等信息,确认证书有效性。