自定义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
在此过程中,你需要输入一些信息,例如:
- 国家名称 (Country Name): 这是一个两位字母代码,例如,中国是 “CN”。
- 州或省名称 (State or Province Name): 你所在的州或省的全名。
- 地方名称 (Locality Name): 你所在的城市名称。
- 组织名称 (Organization Name): 你的公司或组织的合法名称。
- 组织单位名称 (Organizational Unit Name): 你的部门名称。
- 公共名称 (Common Name): 这是最重要的字段,通常是你的域名或IP地址。
- 电子邮件地址 (Email Address): 联系电子邮件地址。
此外,还有一些可选字段: - 挑战密码 (Challenge Password):
通常留空
。 - 公司名称 (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颁发的证书。