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

Linux 系统中使用 OpenSSL 生成适用于 IIS 的证书

Linux 系统中使用 OpenSSL 生成适用于 IIS 的证书

1. 确保 OpenSSL 已安装

在 Linux 系统中,可以通过以下命令检查 OpenSSL 是否已安装:

openssl version

如果未安装,可以使用包管理器安装。例如:

  • 在基于 Debian 的系统(如 Ubuntu)中
    sudo apt update
    sudo apt install openssl
    
  • 在基于 Red Hat 的系统(如 CentOS 或 Fedora)中
    sudo yum install openssl
    

2. 生成私钥

运行以下命令生成私钥:

openssl genrsa -out server.key 2048

这将生成一个 2048 位的 RSA 私钥文件 server.key

3. 生成证书签名请求(CSR)

运行以下命令生成 CSR 文件:

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

在运行此命令时,系统会提示你输入证书的主题信息,例如:

  • Country Name (2 letter code): 输入国家代码,例如 CN
  • State or Province Name: 输入省份名称。
  • Locality Name: 输入城市名称。
  • Organization Name: 输入组织名称。
  • Organizational Unit Name: 输入部门名称。
  • Common Name: 输入域名或服务器名称,例如 www.example.com
  • Email Address: 输入管理员邮箱地址。

4. 生成自签名证书

运行以下命令生成自签名证书:

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

这将生成一个有效期为 365 天的自签名证书文件 server.crt

5. 将证书和私钥转换为 PFX 格式

IIS 需要 PFX 格式的证书,可以通过以下命令将证书和私钥转换为 PFX 文件:

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt

运行此命令时,系统会提示你输入 PFX 文件的密码。请记住这个密码,稍后在 IIS 中导入证书时需要使用。

6. 将 PFX 文件传输到 Windows 服务器

将生成的 server.pfx 文件从 Linux 系统传输到运行 IIS 的 Windows 服务器上。可以使用工具如 scpftp 或其他文件传输方式。

7. 在 IIS 中导入证书

在 Windows 服务器上,按照以下步骤导入 PFX 文件:

  1. 打开 IIS 管理器。
  2. 在左侧导航栏中,选择服务器名称。
  3. 双击“服务器证书”。
  4. 在右侧“操作”栏中,点击“导入”。
  5. 选择 server.pfx 文件,并输入之前设置的 PFX 文件密码。
  6. 点击“确定”完成导入。

8. 绑定证书到网站

  1. 在 IIS 管理器中,选择要绑定证书的网站。
  2. 右键单击网站,选择“编辑绑定”。
  3. 在“网站绑定”窗口中,点击“添加”。
  4. 选择类型为 https,端口为 443,并从下拉菜单中选择刚才导入的证书。
  5. 点击“确定”完成绑定。

注意事项

  • 证书安全:自签名证书在浏览器中可能会被标记为不安全。如果用于生产环境,建议从受信任的证书颁发机构(CA)获取证书。
  • 私钥保护:私钥文件(server.key)非常重要,应妥善保管,避免泄露。
  • PFX 文件密码:PFX 文件的密码应足够复杂,以防止未经授权的访问。

通过以上步骤,你可以在 Linux 系统中使用 OpenSSL 生成适用于 IIS 的证书,并完成配置。

http://www.xdnf.cn/news/85141.html

相关文章:

  • L2-2、示范教学与角色扮演:激发模型“模仿力“与“人格“
  • Selenium 在爬取过程中,网络响应被退出的解决方案
  • 机器学习第二篇 多变量线性回归
  • CF912E
  • PR网表出现assign该如何解决
  • 三网通电玩城平台系统结构与源码工程详解(一):系统概述与前端搭建
  • 第四届商师校赛 web 1
  • 【Git】Git的远程分支已删除,为何本地还能显示?
  • VSCode 用于JAVA开发的环境配置,JDK为1.8版本时的配置
  • 交易所开发:构建高效数字交易枢纽
  • Spring 事务实现原理,Spring 的 ACID是如何实现的?如果让你用 JDBC 实现事务怎么实现?
  • React.cloneElement的用法详解
  • go 编译的 windows 进程(exe)以管理员权限启动(UAC)
  • Spark-Streaming简介及核心编程
  • 详解Windows(六)——文件系统
  • 电脑安装adb并且连接华为手机mate60pro后查看设备
  • 服务器操作系统时间同步失败的原因及修复
  • Windows:异常安全的内核对象
  • 如何使用压缩文件便捷地管理远程工作文件?
  • 子网划分的学习
  • 深入探索RAG:用LlamaIndex为大语言模型扩展知识,实现智能检索增强生成
  • Linux:线程基础(虚拟地址,分页)
  • 实现鼠标拖拽图片效果
  • 驱动开发硬核特训 · Day 17:深入掌握中断机制与驱动开发中的应用实战
  • 或者某些 M 理论、Loop Quantum Gravity 的空背景设想
  • 【Java面试笔记:基础】8.对比Vector、ArrayList、LinkedList有何区别?
  • L2-1、打造稳定可控的 AI 输出 —— Prompt 模板与格式控制
  • 局域网内,将linux(Ubuntu)的硬盘映射成Windows上,像本地磁盘一样使用
  • Lua 第8部分 补充知识
  • ProxySQL 读写分离规则配置指南