Email:2225994292@qq.com
CNY
开发环境中快速部署自签名SSL证书的方法
更新时间:2025-08-29 作者:自签名SSL证书

自签名SSL证书因 “零成本、生成快、适配本地”,成为开发环境首选。本文讲解其核心概念、多系统生成方法、主流服务器部署流程,解决浏览器信任等问题,助力 10 分钟搭建HTTPS环境。

一、自签名SSL证书的基础认知

1. 核心定义

自签名SSL证书由开发者生成签名,无第三方 CA 认证,核心作用:

  • 数据加密:通过 RSA/ECC 算法加密传输,防中间人窃听;
  • 身份标识:标识本地服务器合法性,满足HTTPS证书验证要求。

与权威证书区别:无 CA 信任链,浏览器默认标记 “不安全”,需手动添加到信任库。

2. 适用场景

仅用于本地开发测试:

  • 调试需HTTPS的功能(如 Chrome 要求 PWA、地理位置 API 基于 HTTPS);
  • 模拟生产HTTPS通信,验证接口加密与证书逻辑;
  • 本地多服务间安全通信(前端、后端、数据库)。

注意:严禁用于生产环境,否则浏览器提示不安全。

3. 必备工具与算法

(1)工具

  • OpenSSL:跨平台加密工具,Windows 需安装,Linux/macOS 预装;
  • Keytool:JDK 内置,适用于 Java 项目生成 JKS 证书;
  • Mkcert:Cloudflare 开发,自动生成并信任证书,新手首选。

(2)算法选择

优先ECC 算法:相同安全强度下密钥短、速度快、生成耗时少,兼容现代浏览器;需兼容老旧设备选 RSA(2048 位)。

二、自签名SSL证书的生成方法

方案一:OpenSSL 手动生成(跨平台)

1. Windows 安装 OpenSSL

下载安装后,CMD 输入openssl version验证,确保命令可识别。

2. 三步生成证书(ECC 为例)

  • 生成 ECC 私钥:
openssl ecparam -genkey -name secp256r1 -out server.key
  • 生成 CSR:执行openssl req -new -key server.key -out server.csr,必填Common Name(与访问地址一致,如localhost),其他可选填;
  • 生成证书:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

3. 验证

执行openssl x509 -in server.crt -noout -text,含 ECC 签名算法、有效期、绑定域名即成功。

方案二:Mkcert 简化生成(新手首选)

1. 安装

  • Windows:Chocolatey 安装或下载 exe;
  • macOS:brew install mkcert
  • Linux:sudo apt install mkcert

2. 生成信任

  • 初始化本地 CA:mkcert -install
  • 生成证书:mkcert localhost 127.0.0.1 ::1,自动生成私钥与证书并添加信任。

3. 优劣势

  • 优势:零配置、1 分钟完成、自动信任;
  • 局限:自定义程度低,复杂场景需用 OpenSSL。

三、自签名SSL证书的服务器部署

1. Nginx 配置(前后端分离常用)

  • 证书放conf/ssl目录;
  • 修改nginx.conf
server {
    listen 443 ssl;
    server_name localhost;
    ssl_certificate ssl/server.crt;
    ssl_certificate_key ssl/server.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    location / { proxy_pass http://127.0.0.1:3000; } # 代理前端
    location /api { proxy_pass http://127.0.0.1:8080; } # 代理后端
}
  • 验证启动:nginx -t验证配置,nginx启动或nginx -s reload重启,访问https://localhost测试。

2. Apache 配置(PHP 开发常用)

(1)启用 SSL 模块:

  • Windows:取消httpd.confmod_sslhttpd-ssl.conf注释;
  • Linux:sudo a2enmod ssl && sudo systemctl restart apache2

(2)修改配置文件:

<VirtualHost _default_:443>
    ServerName localhost;
    SSLEngine on;
    SSLCertificateFile 证书路径;
    SSLCertificateKeyFile 私钥路径;
    DocumentRoot 网站根目录;
</VirtualHost>

(3)重启验证:Windows httpd -k restart,Linux sudo systemctl restart apache2

3. Node.js 配置(Node 开发常用)

  • 证书放项目ssl目录;
  • 编写代码(Express 示例):
const express = require('express');
constHTTPS= require('https');
const fs = require('fs');
const app = express();
const options = {
    key: fs.readFileSync('ssl/server.key'),
    cert: fs.readFileSync('ssl/server.crt')
};
https.createServer(options, app).listen(443, () => {
    console.log('HTTPS running at https://localhost');
});
  • 启动:npm install express && node server.js,访问测试。

4. Tomcat 配置(Java 开发常用)

(1)生成 JKS 证书:

keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -keystore tomcat.keystore -validity 365

(按提示输入密钥库密码等信息,Common Name填localhost);

(2)修改conf/server.xml:

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/tomcat.keystore"
                     type="RSA" certificateKeystorePassword="密钥库密码"/>
    </SSLHostConfig>
</Connector>

(3)重启 Tomcat,访问https://localhost测试。


Dogssl.cn拥有20年网络安全服务经验,提供构涵盖国际CA机构SectigoDigicertGeoTrustGlobalSign,以及国内CA机构CFCA沃通vTrus上海CA等数十个SSL证书品牌。全程技术支持及免费部署服务,如您有SSL证书需求,欢迎联系!
相关文档
立即加入,让您的品牌更加安全可靠!
申请SSL证书
0.145146s