自签HTTPS证书是一种不通过证书颁发机构(CA)签发的证书,适用于测试和内部使用。以下是在不同环境下生成自签名证书的详细步骤:

1. 使用OpenSSL生成自签名证书

OpenSSL是一个强大的开源工具包,用于实现安全套接字层(SSL)和传输层安全(TLS)协议的功能。以下是在CentOS 7.x系统上生成自签名证书的详细步骤:

  1. 安装OpenSSL

    yum install openssl -y
  2. 生成带密码的私有密钥

    openssl genrsa -des3 -out server.key -rand 0x1000000000000000000

    执行上述命令后,系统会提示你输入一个密码。

  3. 移除密码保护

    openssl rsa -in server.key -out server-nopass.key

    在提示要求输入的地方输入刚才的密码,回车。

  4. 生成自签名证书

    openssl req -new -x509 -key server-nopass.key -out server.crt -days 3650

    在执行该命令时,系统会要求你输入一些证书信息,如国家、省份、城市等。这些信息可以根据实际情况填写,或留空使用默认值。

  5. 生成证书签名请求(CSR)

    openssl req -new -key server-nopass.key -out server.csr
  6. 生成完整的签名证书

    openssl x509 -req -days 3650 -in server.csr -CA server.crt -CAkey server-nopass.key -CAcreateserial -out server.crt
  7. 生成PFX格式证书

    openssl pkcs12 -export -out server.pfx -in server.crt -inkey server-nopass.key

    系统会提示你输入一个密码,这里可以直接留空。

  8. 转换PFX证书为PEM格式

    cat server.crt server-nopass.key > server.pem

通过上述步骤,你已经成功在CentOS 7.x系统上生成了一个自签名的HTTPS证书,可以用于本地测试或内部网络的安全通信。在生产环境中,建议使用由受信任的CA签发的证书以确保最高级别的安全性。

2. 使用mkcert生成自签名证书

mkcert是一个专门用于生成本地受信任的SSL/TLS证书的开源工具。它旨在简化本地开发环境中SSL证书的创建和管理过程,提高开发效率,并确保数据的安全性。以下是使用mkcert生成自签名证书的步骤:

  1. 下载mkcert
    访问mkcert的GitHub页面(https://github.com/FiloSottile/mkcert),下载适合你操作系统的预编译版本。
  2. 安装mkcert
    将下载的mkcert二进制文件移动到系统的执行路径中,如Windows的C:\Windows\System32或Linux和macOS的/usr/local/bin
  3. 安装本地CA证书
    在终端或命令提示符中运行mkcert -install命令,以安装本地CA证书到系统信任存储。
    macOS系统也可以使用以下命令安装:

    brew install mkcert
    brew install nss # if you use Firefox

    这个命令会在你的系统信任存储中安装一个本地CA证书,mkcert生成的所有证书都会被信任。

  4. 生成证书和私钥
    使用mkcert命令后跟你希望生成证书的域名或IP地址,例如:

    mkcert example.com localhost 127.0.0.1

    即可生成证书和私钥。生成的文件包括证书文件(如example.com+1.pem)和私钥文件(如example.com+1-key.pem)。

  5. 配置Nginx
    生成证书后,也可以将它配置到你的Web服务器(如Nginx)上,来实现HTTPS访问。配置示例如下:

    server {
        listen 443 ssl;
        server_name example.com;
        ssl_certificate /path/to/example.com+1.pem; # 证书文件路径
        ssl_certificate_key /path/to/example.com+1-key.pem; # 私钥文件路径
    }

    配置完成后,重启Nginx,即可通过HTTPS安全访问你的本地站点。

mkcert主要用于本地开发环境,帮助开发者轻松创建HTTPS连接,而无需公开暴露证书或依赖公共CAs。它特别适用于以下场景:

  • 本地Web开发:开发者可以使用mkcert生成的本地受信任证书来测试HTTPS连接,而无需担心浏览器的信任警告。
  • API测试:在测试API时,可以使用mkcert生成的证书来模拟HTTPS请求和响应。
  • 物联网开发:对于需要安全通信的物联网设备,mkcert可以生成设备所需的SSL/TLS证书。

请注意,不要在生产环境中使用mkcert生成的自签名证书,因为它们不会被公共浏览器信任。在生产环境中,应使用由受信任的证书颁发机构签发的证书。此外,mkcert生成的证书通常具有较短的有效期(如365天),以确保证书的安全性。开发者需要定期更新证书。

标签: https证书自签

FoxSSL.COM,单域名SSL证书—35元/年,通配符证书—255元/年点击 购买

评论已关闭