openssl生成ssl证书操作指南

openssl是一个被几乎所有Linux发行版以及macOS、Windows操作系统广泛支持的开源加密工具包,可用于生成RSA或ECC密钥对、创建证书签名请求等需求,在使用openssl之前需要先在系统中安装该工具,使用openssl生成ssl证书属于自签名证书,比较适合开发测试环境使用,下面将为大家介绍openssl生成ssl证书的操作指南。

生成ssl证书

 一、openssl生成ssl证书步骤

自签名证书是指不经过第三方权威CA(数字证书认证机构)的验证,由用户自行签发、自行设定有效期的ssl证书。整个流程只需在终端中执行几条命令,即可在不到一分钟内完成。

步骤1:生成私钥(Private Key)

私钥是证书安全的核心基石,用于后续加密和身份验证,绝对不能泄露给第三方。使用`openssl genrsa`命令生成2048位的RSA私钥:

openssl genrsa-out server.key 2048

如果不希望私钥以明文形式存储,可以在命令中增加`-aes256`参数对私钥文件进行加密保护,系统会提示设置密码。这相当于为私钥加了一把”锁”,即使私钥文件意外泄露,没有密码也无法使用。

步骤2:创建证书签名请求(CSR)

CSR文件包含了申请证书所需的组织信息和公钥。执行以下命令,按提示依次填写国家代码(如CN)、省份、城市、组织名称、部门以及最重要的Common Name(CN)字段——该字段必须填写需要加密的域名或IP地址。

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

CN字段示例:若为`www.example.com`申请证书,CN需填写`www.example.com`;若为泛域名证书,CN需填写`*.example.com`。

步骤3:生成自签名证书并设置有效期

根据CSR和私钥生成自签名证书。-days参数用于指定证书的有效天数(自2026年3月15日起,ssl证书行业最长有效期已缩短至200天)。因此,建议本地生成的证书也不要超过200天,以保持与行业主流标准同步。

openssl x509-req-days 200-in server.csr-signkey server.key-out server.crt

执行完毕后,当前目录下会生成三个核心文件:私钥文件(server.key)、CSR文件(server.csr)和自签名证书文件(server.crt)。

步骤4:在Web服务器中部署证书

以Nginx为例,将`server.crt`和`server.key`上传至服务器的安全目录(推荐/etc/nginx/ssl/),然后在站点配置文件中添加443端口监听并指定证书路径:

server{

listen 443 ssl;

server_name www.example.com;

ssl_certificate/etc/nginx/ssl/server.crt;

ssl_certificate_key/etc/nginx/ssl/server.key;

}

配置完成后运行nginx-t测试语法,若显示”ok”则执行systemctl reload nginx重启服务使配置生效。

 二、openssl生成ssl证书的局限性

自签名证书由于缺少第三方CA的背书,浏览器在验证时会发现证书的签名者不被信任,进而判定存在潜在风险,弹出”您的连接不是私密连接””证书无效”等安全警告,部分浏览器甚至会直接阻止访问。调研数据显示,超过90%的用户在看到此类安全警报后会直接关闭页面,这对商业网站而言意味着潜在客户的直接流失。

因此,自签名证书的适用场景非常有限,仅可在以下三类封闭环境中使用:本地开发调试环境、企业内网测试服务器和封闭的IoT设备通信网络,对于任何面向公众的网站,即使是个人博客,也应避免使用自签名证书。

上文为大家介绍了openssl生成ssl证书的操作流程,自签名证书的全部价值在于本地开发和内网测试,

切勿将其部署在面向公网的任何生产系统上——不仅会因浏览器的安全警告直接造成用户流失,还可能触发合规处罚和中间人攻击等安全事件。对于正式上线的网站,建议通过安信证书(www.anxinssl.com)等正规服务商申请一张由权威CA机构签发的ssl证书。

相关推荐:《SSL证书生成CSR及安装方法

免责声明:文章内容不代表DigiCert证书评测网的立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐