Unbuntu下怎么生成SSL自签证书?

环境:

WSL2

Unbuntu 22.04

问题描述:

Unbuntu下怎么生成SSL自签证书?

解决方案:

生成自签名SSL证书可以使用OpenSSL工具,这是一个广泛使用的命令行工具,用于创建和管理SSL/TLS证书。以下是生成自签名SSL证书的步骤:

安装 OpenSSL

确保你已经安装了OpenSSL。Unbuntu默认安装的,大多数Linux发行版和macOS系统默认都安装了OpenSSL。如果你使用的是Windows,可以从OpenSSL官网下载并安装。

生成私钥和证书签名请求(CSR)

  1. 生成私钥
    使用以下命令生成一个2048位的RSA私钥。你可以根据需要调整密钥大小。

    bash 复制代码
    openssl genpkey -algorithm RSA -out private.key -aes256

生成不加密

bash 复制代码
openssl rsa -in /etc/nginx/ssl/private.key -out /etc/nginx/ssl/private_unencrypted.key

这个命令会提示你输入一个密码来保护私钥。如果你不想设置密码,可以省略-aes256选项。

  1. 生成证书签名请求(CSR)
    使用私钥生成一个CSR文件,这将包含你的公钥信息和其他组织详情。

    bash 复制代码
    openssl req -new -key private.key -out csr.csr

    在执行上述命令时,你需要提供一些信息,如国家、省份、城市、组织名称等。这些信息将嵌入到你的证书中。

    Common Name: 这通常是服务器的域名暂时没有域名localhost

可选扩展信息

有时 OpenSSL 也会询问你是否要提供额外的属性,比如挑战密码和可选公司名称。通常情况下,你可以直接按回车键跳过这些选项

挑战密码 是一种用于验证身份的机制,但它并不是所有情况下都需要。如果你不打算使用它,可以直接按回车键留空。

A challenge password []:

生成自签名证书

  1. 生成自签名证书
    使用私钥和CSR文件来创建一个自签名证书。这个证书的有效期为365天,你可以根据需要调整有效期。

    bash 复制代码
    openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt

合并私钥和证书(可选)

如果你想将私钥和证书合并成一个文件(例如为了某些应用程序),你可以这样做:

bash 复制代码
cat private.key certificate.crt > combined.pem

验证证书

你可以通过以下命令验证生成的证书是否正确:

bash 复制代码
openssl x509 -in certificate.crt -text -noout

完整脚本

如果你想要一个完整的脚本来一次性完成所有步骤,这里有一个示例:

bash 复制代码
# 生成私钥
openssl genpkey -algorithm RSA -out private.key -aes256

# 生成证书签名请求
openssl req -new -key private.key -out csr.csr

# 生成自签名证书
openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt

# 可选:合并私钥和证书
cat private.key certificate.crt > combined.pem

# 验证证书
openssl x509 -in certificate.crt -text -noout

注意事项

  • 安全性:自签名证书不会被浏览器信任,默认情况下会显示警告信息。对于生产环境,应该从受信任的证书颁发机构(CA)获取证书。
  • 有效期:上面的例子中证书有效期为一年(365天)。你可以根据需要调整这个时间。
  • 存储安全:请妥善保管你的私钥文件,并确保它不被未经授权的人访问。

按照上述步骤操作后,你应该能够成功生成一个自签名SSL证书,并可以将其用于本地开发或测试环境中。

相关推荐
我也要当昏君5 小时前
6.3 文件传输协议 (答案见原书 P277)
网络
Greedy Alg5 小时前
Socket编程学习记录
网络·websocket·学习
刘逸潇20056 小时前
FastAPI(二)——请求与响应
网络·python·fastapi
软件技术员6 小时前
使用ACME自动签发SSL 证书
服务器·网络协议·ssl
我也要当昏君6 小时前
6.4 电子邮件 (答案见原书 P284)
网络协议
Mongnewer6 小时前
通过虚拟串口和网络UDP进行数据收发的Delphi7, Lazarus, VB6和VisualFreeBasic实践
网络
我也要当昏君7 小时前
6.5 万维网(答案见原书P294)
网络
嶔某7 小时前
网络:传输层协议UDP和TCP
网络·tcp/ip·udp
文火冰糖的硅基工坊8 小时前
[嵌入式系统-154]:各种工业现场总线比较
网络·自动驾驶·硬件架构
以己之8 小时前
详解TCP(详细版)
java·网络·tcp/ip