自定义HTTPS证书用于内网环境,记录一下简单步骤,方便后面查看

自定义HTTPS证书通常用于开发和测试环境,而不是生产环境,因为自签名证书不会被浏览器和操作系统默认信任,自签名证书主要用于内网加密。

以下是创建自签名HTTPS证书的步骤:

1. 安装OpenSSL

确保你的系统上安装了OpenSSL。大多数Linux发行版和macOS都预装了OpenSSL。对于Windows,你可能需要手动安装。

2. 生成私钥

首先,生成一个私钥文件。私钥用于加密和解密数据。

openssl genrsa -out mydomain.key 2048

这里的 mydomain 可以任意命名。

3. 创建证书签名请求(CSR)

使用私钥生成一个证书签名请求(CSR)。CSR包含有关你的组织的信息,并用于生成证书。

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

在此过程中,你需要输入一些信息,例如:

  1. 国家名称 (Country Name): 这是一个两位字母代码,例如,中国是 “CN”。
  2. 州或省名称 (State or Province Name): 你所在的州或省的全名。
  3. 地方名称 (Locality Name): 你所在的城市名称。
  4. 组织名称 (Organization Name): 你的公司或组织的合法名称。
  5. 组织单位名称 (Organizational Unit Name): 你的部门名称。
  6. 公共名称 (Common Name): 这是最重要的字段,通常是你的域名或IP地址。
  7. 电子邮件地址 (Email Address): 联系电子邮件地址。
    此外,还有一些可选字段:
  8. 挑战密码 (Challenge Password): 通常留空
  9. 公司名称 (Company Name): 也可以留空

在生成CSR时,最关键的是确保“公共名称”字段正确因为它通常是你的域名或IP地址,这将用于验证证书的有效性。其他字段可以根据需要填写或留空,尤其是在测试或开发环境中。

4. 生成自签名证书

openssl x509 -req -days 365 -in mydomain.csr -signkey mydomain.key -out mydomain.crt

5. 配置Web服务器

将生成的证书和私钥配置到你的Web服务器中。例如,在Nginx中,你可以这样配置:

server {  
    listen 80;  
    server_name localhost;  

    # 将所有HTTP请求重定向到HTTPS  
    rewrite ^(.*)$ https://$host$request_uri permanent;  
}  

server {  
    listen 443 ssl;  
    server_name mydomain.com;  

    ssl_certificate /path/to/mydomain.crt;  
    ssl_certificate_key /path/to/mydomain.key;  

    # 其他配置...  
}

6. 测试访问

在内网中访问配置了自签名证书的服务器时,浏览器会提示证书不受信任。你可以选择手动信任该证书,或者在浏览器中添加例外

请注意,自签名证书适合开发和测试环境。在生产环境中,建议使用由可信CA颁发的证书。