Sep 10, 2024

内网环境下,如何签发浏览器认可的https证书?

流逝之
by 流逝之
内网环境下,如何签发浏览器认可的https证书?

在内网环境下签发浏览器认可的 HTTPS 证书

1. 选择证书颁发机构 (CA)

在内网环境中,可以选择以下两种方式来创建和使用 HTTPS 证书:

  • 自签名证书 :适用于测试或开发环境,但浏览器会提示不安全。
  • 内部 CA:可以自己搭建一个证书颁发机构,签发证书并让浏览器信任。

2. 搭建内部 CA

如果您选择使用内部 CA,可以按照以下步骤操作:

1. 创建 CA 证书

使用 OpenSSL 创建 CA 证书和私钥:

# 创建私钥
openssl genrsa -out ca.key 2048

# 创建自签名 CA 证书
openssl req -x509 -new -nodes -key ca.key -sha256 -days 1024 -out ca.crt

2. 签发证书

为您的域名(例如 *.lan)创建证书请求并签发证书:

# 创建私钥
openssl genrsa -out wildcard.lan.key 2048

# 创建证书签名请求 (CSR)
openssl req -new -key wildcard.lan.key -out wildcard.lan.csr

# 使用 CA 签发证书
openssl x509 -req -in wildcard.lan.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out wildcard.lan.crt -days 500 -sha256 -extfile <(printf "subjectAltName=DNS:*.lan")

3. 安装 CA 证书

为了使浏览器信任您签发的证书,您需要将 CA 证书安装到浏览器或操作系统中:

  • Windows: 将 ca.crt 导入到“受信任的根证书颁发机构”中。
  • macOS: 使用“钥匙串访问”将 CA 证书添加到“系统”钥匙串并设置为信任。
  • Linux: 将 CA 证书放入 /usr/local/share/ca-certificates/ 目录,并运行 update-ca-certificates

4. 配置 Web 服务器

将生成的证书和私钥配置到您的 Web 服务器中(如 Nginx、Apache 等)。

例如,在 Nginx 中的配置示例:

nginx

server {
    listen 443 ssl;
    server_name *.lan;

    ssl_certificate /path/to/wildcard.lan.crt;
    ssl_certificate_key /path/to/wildcard.lan.key;

    # 其他配置...
}

Comments(0)


Scroll down to load more data.
Continue Reading