推荐新手一步生成私钥和自签名证书:运行openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 3650 -nodes -subj "/C=CN/ST=Beijing/L=Beijing/O=Local/CN=localhost",其中CN必须与实际访问地址一致。

要在Linux上为本地开发服务、内网测试环境或临时HTTPS验证快速启用加密连接,必须生成一对可用的私钥和自签名证书文件,且不能依赖CA交互流程或预置配置目录结构。
一步到位生成私钥+证书(推荐新手)
这一步操作起来很简单,直接运行一条命令即可同时产出server.key和server.crt两个文件,适合绝大多数测试场景。
执行:openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 3650 -nodes -subj "/C=CN/ST=Beijing/L=Beijing/O=Local/CN=localhost"
【CN=localhost必须与你实际访问地址一致】,比如用https://192.168.1.50访问,就得把CN=192.168.1.50;填错会导致浏览器拒绝建立HTTPS连接。
这条命令跳过了CSR中间步骤,-x509表示直接输出自签名X.509证书,-nodes表示私钥不设密码——若要加密码保护,删掉-nodes并准备手动输入两次密码。
分步生成:先私钥→再CSR→最后签发
当你需要精细控制证书字段、添加Subject Alternative Name(SAN)或多域名支持,或后续想复用CSR向真实CA申请证书时,必须走三步法。
第一步:生成2048位RSA私钥
执行:openssl genrsa -out server.key 2048
第二步:基于私钥创建证书签名请求
执行:openssl req -new -key server.key -out server.csr
系统会逐项提示填写国家、省份、组织名等;其中Common Name务必填目标访问地址(如localhost或192.168.1.100),否则证书无效。
第三步:用私钥对CSR进行自签名
执行:openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
注意:漏掉-signkey参数或路径写错,命令会静默失败,只生成空文件或报Error Loading extension section v3_ca。
验证证书是否生成成功
运行:openssl x509 -in server.crt -text -noout
查看输出中是否有Subject:行且其CN=值与你访问地址完全匹配;同时确认Validity段落里Not After时间在当前日期之后。
再执行:openssl verify server.crt
若返回server.crt: OK,说明证书格式正确、签名有效。


















