使用openssl+nginx配置自签发HTTPS证书实战

5星 · 超过95%的资源 需积分: 11 2 下载量 125 浏览量 更新于2024-08-04 收藏 292KB PDF 举报
"基于openssl 自行签发https 协议证书并使用openssl+nginx实现https自签有效加密的实战过程" 在网络安全中,HTTPS协议扮演着至关重要的角色,它通过SSL/TLS协议为网络通信提供了加密处理,确保了数据传输的安全性。在某些情况下,我们可能需要自签发证书,例如在内部测试环境或者开发环境中。本文档详细介绍了如何使用openssl工具自签发HTTPS证书,并结合nginx服务器实现配置。 首先,准备工作是关键。你需要一个拥有openssl环境的主机,这里以CentOS 7.6为例。同时,还需要一个nginx服务器,因为我们将用它来部署和测试HTTPS服务。 1. **生成根密钥**: 使用`openssl genpkey`命令创建一个根密钥(如:masee-key.pem),并使用des3算法加密。这里的密码是“Zict7780#@$sthjj”。加密密钥有助于保护密钥不被未授权的用户访问,但也会增加服务器启动时的管理复杂性。 2. **生成根证书**: 基于根密钥,使用`openssl req`命令生成根证书(masee-ca.pem)。在这个过程中,你需要提供证书的基本信息,如国家、州、城市、组织名、组织单位名、通用名(通常为域名)和电子邮件地址。这些信息将用于验证证书的身份。 3. **根证书格式转换**: 为了便于分发和安装,可以将根证书从PEM格式转换为DER(cer)格式,使用`openssl x509`命令完成此操作。这使得客户端可以更容易地导入和信任这个自签发的根证书。 4. **生成私钥**: 使用`openssl genpkey`或`openssl rsa`命令创建服务器私钥(例如:server-key.pem),可选择是否设置密码。如果设置密码,每次启动服务器时都需要输入,增加了安全性但可能带来不便。 5. **生成证书签名请求(CSR)**: 创建一个openssl.cnf配置文件,简化后续命令。然后使用`openssl req`生成CSR,这个请求会包含服务器的公钥和证书请求信息。 6. **签署服务器证书**: 使用根密钥(masee-key.pem)和CSR(server.csr)签署服务器证书(server.crt),这一步骤表明根证书是服务器证书的权威来源。 7. **配置nginx**: 配置nginx服务器以使用新生成的服务器证书和私钥。在nginx的配置文件中,将证书路径和私钥路径指向server.crt和server-key.pem,启用HTTPS监听,并确保正确配置了其他安全设置,如HSTS(HTTP Strict Transport Security)和SSL/TLS协议版本。 8. **客户端安装根证书**: 在所有需要访问服务器的客户端设备上安装根证书(masee-ca.cer),以便它们能信任由这个根证书签署的服务器证书。 完成以上步骤后,你的服务器应该已经配置好使用自签发的HTTPS证书。然而,需要注意的是,虽然这对于测试和内部环境是可行的,但在生产环境中,通常推荐使用由受信任的证书颁发机构(CA)签署的证书,以确保广泛接受和浏览器兼容性。自签发证书可能会在客户端浏览器中引发警告,提示用户证书不受信任。