news 2026/4/23 19:04:21

研发环境:SSL证书快速部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
研发环境:SSL证书快速部署

目录

概述

生成证书

单域名证书(dev.luckybin.top)

Linux

Windows(PowerShell)

通配符证书(*.luckybin.top)

Linux

Windows(PowerShell)

Nginx配置示例

单域名配置

通配符证书配置

证书有效性测试

注意事项


概述

本文档提供研发环境自签名证书生成指南,涵盖单域名证书通配符证书两种类型,支持Windows和Linux系统。

  • OpenSSL版本:1.1.1及以上

  • 域名dev.luckybin.top

  • 环境:Windows / Linux

生成证书

单域名证书(dev.luckybin.top

Linux

# 创建证书目录 mkdir -p /usr/local/nginx/conf/cert # 生成单域名证书 openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /usr/local/nginx/conf/cert/dev.luckybin.top.key \ -out /usr/local/nginx/conf/cert/dev.luckybin.top.crt \ -subj "/C=CN/ST=Beijing/L=Beijing/O=DevTeam/CN=dev.luckybin.top" \ -addext "subjectAltName=DNS:dev.luckybin.top,IP:192.168.60.201"

Windows(PowerShell)

# 创建证书目录 C:\nginx\conf\cert # 生成单域名证书 openssl req -x509 -nodes -days 365 -newkey rsa:2048 ` -keyout "C:\nginx\conf\cert\dev.luckybin.top.key" ` -out "C:\nginx\conf\cert\dev.luckybin.top.crt" ` -subj "/C=CN/ST=Beijing/L=Beijing/O=DevTeam/CN=dev.luckybin.top" ` -addext "subjectAltName=DNS:dev.luckybin.top,IP:192.168.60.201"

通配符证书(*.luckybin.top

Linux

# 生成通配符证书 openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /usr/local/nginx/conf/cert/wildcard.luckybin.top.key \ -out /usr/local/nginx/conf/cert/wildcard.luckybin.top.crt \ -subj "/C=CN/ST=Beijing/L=Beijing/O=DevTeam/CN=*.luckybin.top" \ -addext "subjectAltName=DNS:*.luckybin.top,DNS:luckybin.top,DNS:dev.luckybin.top"

Windows(PowerShell)

# 生成通配符证书 openssl req -x509 -nodes -days 365 -newkey rsa:2048 ` -keyout "C:\nginx\conf\cert\wildcard.luckybin.top.key" ` -out "C:\nginx\conf\cert\wildcard.luckybin.top.crt" ` -subj "/C=CN/ST=Beijing/L=Beijing/O=DevTeam/CN=*.luckybin.top" ` -addext "subjectAltName=DNS:*.luckybin.top,DNS:luckybin.top,DNS:dev.luckybin.top"

Nginx配置示例

单域名配置

server { listen 443 ssl; server_name dev.luckybin.top; # 单域名证书 ssl_certificate /usr/local/nginx/conf/cert/dev.luckybin.top.crt; ssl_certificate_key /usr/local/nginx/conf/cert/dev.luckybin.top.key; # 可选:HTTP重定向到HTTPS location / { # 应用配置... } }

通配符证书配置

server { listen 443 ssl; server_name ~^(?<subdomain>.+)\.luckybin\.top$; # 通配符证书 ssl_certificate /usr/local/nginx/conf/cert/wildcard.luckybin.top.crt; ssl_certificate_key /usr/local/nginx/conf/cert/wildcard.luckybin.top.key; location / { # ... } }

证书有效性测试

# 测试HTTPS连接 curl -v https://dev.luckybin.top --cacert /usr/local/nginx/conf/cert/wildcard.luckybin.top.crt # 检查证书链 openssl s_client -connect dev.luckybin.top:443 -servername dev.luckybin.top </dev/null 2>/dev/null | openssl x509 -text

注意事项

  1. 证书用途:仅限研发测试环境使用,切勿用于生产环境

  2. 有效期:证书默认365天,到期前需重新生成

  3. 浏览器警告:首次访问会有安全警告,需手动信任证书

  4. 通配符限制*.luckybin.top不匹配luckybin.top(需额外添加)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:19:24

一篇 1948 年的论文,为什么至今仍在塑造我们的通信世界?

1948 年&#xff0c;克劳德E香农发表了一篇题为《通信的数学理论》的论文。彼时&#xff0c;它只是一篇看起来相当克制的技术论文&#xff0c;没有宏大的宣言&#xff0c;也没有铺陈未来图景。但正是这篇文章&#xff0c;在随后半个多世纪里&#xff0c;悄然塑造了我们今天所熟…

作者头像 李华
网站建设 2026/4/23 11:31:59

C语言字符串与内存操作函数模拟实现详解

一、strstr函数模拟实现 1.1 函数功能 strstr用于在字符串 str1中查找子串 str2的首次出现位置&#xff1a; const char* strstr(const char* str1, const char* str2); char* strstr(char* str1, const char* str2); 找到则返回第一次出现的起始地址 找不到则返回NULL 1…

作者头像 李华
网站建设 2026/4/23 10:11:21

去哪儿网白盒漏洞 AI 运营实践

前言 在当今快速发展的软件开发环境中&#xff0c;安全漏洞管理正在经历一场深刻的变革。随着 DevOps 理念的广泛普及&#xff0c;安全左移&#xff08;Shift Left Security&#xff09;已成为行业共识&#xff0c;企业纷纷将安全检测前置到开发流程的早期阶段&#xff0c;构建…

作者头像 李华
网站建设 2026/4/23 6:54:44

90%的项目失败,都是从需求管理开始崩塌的!

在产品更新节奏加快、项目复杂性日益提升的当下&#xff0c;许多企业在研发过程中面临着一个共同的难题&#xff1a;需求在流程中容易“丢失”或“变形”。从前端市场输入到后端技术实现&#xff0c;往往缺乏清晰的链条与协作机制&#xff0c;造成计划混乱、执行偏差、任务拖延…

作者头像 李华
网站建设 2026/4/23 10:11:28

NGUI裁剪Shader的底层逻辑与性能优化

先来个很真实的场景: 你接手一个 NGUI 老项目,打开某个滚动列表(ScrollView),发现两件事: 列表能裁剪,超出区域的 item 不显示——看起来很正常。 但一到低端机就掉帧,Profiler 里 UI 渲染时间飙升,GPU 像在哭。 你问:“不就是裁剪一下吗?不让超出区域的像素画出来,…

作者头像 李华
网站建设 2026/4/23 16:12:25

如何在vue3+ts项目中实现zebra扫描枪扫码效果

1实现一个hooks import { onMounted, onUnmounted, ref } from vueinterface ScanOptions {threshold?: numberminLength?: numberonScanProgress?: (buffer: string) > voidonScanSuccess: (code: string) > void }export function useScanGun(options: ScanOptions…

作者头像 李华