当前位置: 首页 > news >正文

Windows技术栈企业基础底座(1)-为基于Windows的Nginx安装证书

企业的基础环境是一个组织的信息化数字化底座。传统企业基础环境多种系统,应用交杂,多种技术栈使得深入运维成本极大,且人员知识技能较难复用,造成资源浪费。本系列旨在尝试推动这一理念, 建立Windows, 或linux聚焦的技术栈的企业数字环境, 统一技术栈, 简化技术选型提高知识密度与资源复用率, 同时支持中小企业的技术快速落地和大型企业的大规模高并发以及精细化。为广大技术决策提供参考。

本篇是本系列文章第一篇讲Windows下Nginx配置.  Nginx是linux里常用服务.  随着Windows拥抱Linux以及WSL(Windows)的普及, 也有些场景是需要异构环境。网上讨论Windows下Nginx使用的信息很少, 笔者将这些信息整理方便需要的读者参考. 

注: Nginx在Windows系统下的版本‌主要提供了基本的HTTP服务器和反向代理功能,尽管它处于beta阶段,并且与Unix版本相比缺少了一些功能,如XSLT过滤器、图像过滤器、GeoIP模块和嵌入Perl语言支持。然而,对于大多数基本的Web服务和反向代理需求,Windows版的Nginx能够满足

环境介绍:  

企业Windows客户端通过Nginx通过HTTPS访问内部网页应用.  客户端是Windows 10, 使用Windows CA作为内部PKA, 用Windows版Nginx. 本文主要讲Nginx安装配置部分:

1. 在Windows安装Nginx: 

从官方网站下载Nginx Windows版本进行安装. : 

nginx: download

可以选择最新版本, 下载后解压就可以. 

2. 安装Windows CA, 并生成带有私钥的证书用于web应用:

采用Windows 2016作为内部CA证书服务器. 证书服务器的配置安装我们将在其他文章里详细展开.  这里假设你已经生成了1.pfx的证书文件. 

3. 在安装Nginx的Windows服务器安装Openssl:

Nginx默认不支持pfx/cer格式证书. 需要将pfx转key, crt和pem进行配置使用

下载openssl Windows安装文件:

Win64 OpenSSL v3.3.2 Light : 

安装后选择将openssl.exe 复制到 bin文件夹。

同时把第二步生成的1.pfx 复制到 openssl的 bin文件夹下,方便后续操作. 

4. 进Openssl转证书:

a. 以管理员身份运行cmd.exe,  进入到openssl.exe和证书所在目录 bin

b. 运行一下命令开始转证书: 

根据pfx生成key文件

openssl pkcs12 -in 1.pfx -out server.key -nocerts

根据提示输入三次口令  -- 这里第一次为pfx文件密码, 2/3为pem密码

根据pfx生成crt证书文件

openssl pkcs12 -in 1.pfx -out server.crt

根据提示输入三次口令  -- 这里第一次为pfx文件密码, 2/3为pem密码

生成pem文件

openssl x509 -in server.crt -outform PEM -out server.pem

这里防止nginx每次启动都需要输入pem密码, 多做一步:

openssl rsa -in server.key -out server.key.unsecure

注意: server.key.unsecure 使得私钥没有密码保护.

4. 配置Nginx 使用生成的证书: 

进到Nginx安装目录的conf文件夹, 按如下编辑nginx.conf文件. 将servername, proxy_pass 地址改为实际值. 

如果nginx到后端无需SSL, 可以配置proxy_pass 为http

这里建议将nginx所需要的证书复制到conf文件夹, 简化配置证书路径. nginx是linux环境下构建的应用, 其路径表达和Windows 不同。

# HTTPS server    # 将servername修改为自己的域名server {listen       443 ssl;        server_name  servername;        ssl_certificate      "c:\Nginx\conf\server.pem";        ssl_certificate_key  "c:\Nginx\conf\server.key.unsecure";ssl_session_cache    shared:SSL:1m;ssl_session_timeout  5m;ssl_ciphers  HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers  on;location / {            proxy_pass http://ipaddress:port;        }    }

5.  启动Nginx, 检测 https连接是否成功. 

这里需要注意的是, 内部WindowsCA的 根证书,需要出现在客户端机器的受信任证书颁发机构, 不然服务器证书也将不被信任从而浏览器访问会出现证书错误. 

Image

正常情况下, https访问就会成功.  如果之前nginx.conf的证书路径配置错误, 则nginx无法加载, 会报无法找到证书文件的错误.  

关注生产力联盟, 提高个人和组织的新质生产力.  欢迎关注交流. 

http://www.lryc.cn/news/437527.html

相关文章:

  • ThreeJS入门(002):学习思维路径
  • 基于ssm+vue+uniapp的新生报到系统小程序
  • 掌握 JavaScript ES6+:现代编程技巧与模块化实践
  • AttackGen - AI 网络安全事件响应测试工具,附下载链接
  • CAD2020安装方法
  • ubuntu安装mongodb实操学习
  • RabbitMQ 基础入门
  • Unity 特殊文件夹
  • Monster Sound FX Pack 2 怪物恶魔野兽声效包
  • linux常用环境配置
  • SoapShell 更新 | 新增调用cmd执行系统命令
  • Ubuntu查看系统用户信息
  • 入门AI绘画 | 手把手教学Stable Diffusion
  • 基于SpringBoot+Vue+MySQL的热门网络游戏推荐系统
  • SpringBoot + Vue + ElementUI 实现 el-table 分页功能详解
  • 游戏、网关等服务借助Docker容器化并使用Kubernetes部署、更新等
  • Vue面试题4
  • Probabilistic Embeddings for Cross-Modal Retrieval 论文阅读
  • CSS基本布局理解(测试)——WEB开发系列38
  • 计算机视觉(一)—— 特刊推荐
  • OpenCV class1-C#+winfrom显示控件并内存管理
  • 构建蛋白质复合体结构中所有链序列的同源性矩阵
  • [苍穹外卖]-10WebSocket入门与实战
  • 【JAVA】一篇聊透百万级数据导入导出场景问题、大数据处理策略及优化方案、EasyExcel 和 EasyPOI的玩法详解
  • 2024年华为9月4日秋招笔试真题题解
  • Next.js 14 App Router 预渲染 代码实践 静态页面渲染 SSG 服务端渲染代码 SSR
  • 阿里云人工智能ACP错题整理.txt
  • 为 WebSocket 配置 Nginx 反向代理来支持 Uvicorn 的最佳实践
  • Centos7通过Docker安装openGauss5.0.2并配置用户供Navicat连接使用
  • 生成树详细配置(STP、RSTP、MSTP)