使用openssl创建自签名证书及部署到IIS教程

概要

本文讲解三个部分:
1. 创建自签名证书
2. 创建自己的证书颁发机构
3. 以及如何配置IIS

创建自签名证书

首先,创建一个私钥文件:

openssl genrsa -out myselfsigned.key 2048

然后利用私钥创建自签名证书:

openssl req -new -x509 -key myselfsigned.key -out myselfsigned.cer -days 36500

执行上面的两个操作之后会提示输入以下几个内容(为了显示正常尽量使用英文):

  1. Country Name (2 letter code) [AU]:CN //国家简称
  2. State or Province Name (full name) [Some-State]:GuangDong //州或省的名字
  3. Locality Name (eg, city) []:ShenZhen //区或市县的名称
  4. Organization Name (eg, company) [Internet Widgits Pty Ltd]:Comapny //公司或组织名
  5. Organizational Unit Name (eg, section) []:Mobile //单位或者是部门名称
  6. Common Name (e.g. server FQDN or YOUR name) []:xxxxxx //域名或服务器名或IP
  7. Email Address []:[email protected] //Email地址

注, 上述可直接在命令中用-subj跟在语句后面, 如:
openssl req -new -x509 -key myselfsigned.key -out myselfsigned.cer -days 36500 -subj /CN=域名或服务器名或IP

至此, 生成的myselfsigned.cer分别应用到服务器端以及客户端(通过邮件, 链接等方式下发), 即可使用, 配置IIS见下文

创建自己的证书颁发机构(CA)

即使是测试目的, 也会出现有多个站点需要自定义证书的情况, 不可能要求用户每个站点装一个 我们何不把自己添加成一个证书颁发机构(CA), 然后把这个证书装给客户端, 那么由这个CA颁发的证书都会被自动信任.

首先, 用同样的语法创建一个证书, 我们把名字取明确一些, 就叫myCA吧(跟第一步生成普通证书是一样一样的, 只是这次我们把它理解成一个证书颁发机构)

openssl genrsa -out myCA.key 2048
openssl req -new -x509 -key myCA.key -out myCA.cer -days 36500

然后, 基于这个证书生成一个证书请求(CSR), (同样, 先生成一个key, 要用key来请求)

openssl genrsa -out server.key 2048
openssl req -new -out server.req -key server.key -subj /CN=域名

注:
1. 一旦域名配置了, 用不同于这个域名的主机名来请求, 就会校验失败
2. 这里用到了上面说的-subj参数

最后, 通过服务器证书(我们理解的CA), 对这个签发请求进行签发

openssl x509 -req -in server.req -out server.cer -CAkey myCA.key -CA myCA.cer -days 36500 -CAcreateserial -CAserial serial

配置IIS

我们的使用场景是IIS伺服了一个静态文件服务器(没错, 是用来放iOS企业部署的的plist和ipa文件的), 做到如下几步

转化证书格式

IIS导入证书需要转化为pkcs12格式(X509格式?), 中间会询问一次密码, 牢记, 或者与导出的文件一起保存

openssl pkcs12 -export -clcerts -in server.cer -inkey server.key -out iis.pfx

现在总结一下, 目前为止, 除去key和csr, 生成了myCA.cerserver.cer 和iis.pfx三个文件

将myCA.cer添加为”受信任的根证书颁发机构”

打开IE > 工具 > Internet选项 > 内容 > 证书 > 受信任的根证书颁发机构 > 导入 > 选择iis.pfx > 输入密码 > 导入

添加服务器证书

这需要两个步骤

首先, 在IIS管理器(inetmgr)的根目录上(就是机器名), 选择”服务器证书”, 导入我们刚才用server.cer生成的iis.pfx, 即给IIS添加了一个证书(如果有多个, 重复以上步骤)

然后, 找到网站节点, 右键, “编辑绑定”, 添加一个供https访问的端口(默认是443), 此时会要求你选择一个证书, 把刚才通过管理器添加的证书名选出来, 即可.

最后, 把server.cer通用你们企业自己的方式颁发给需要使用的客户端(邮件, 链接等, 均可), 如果是iPhone, 点击了server.cer文件后, 会导航到设置里面安装, 安装并信任后, 在设置 > 通用 > Profiles里面可以看到你信任的证书使用openssl创建自签名证书及部署到IIS教程

时间: 2025-01-07 15:14:26

使用openssl创建自签名证书及部署到IIS教程的相关文章

使用 OpenSSL为WindowsServer远程桌面(RDP)创建自签名证书 (Self-signed SSL certificate)

前言 笔者查阅很多资料,才写成此文章,如有错误,请读者们及时提出. 一般大家使用远程桌面(Remote Desktop)连接Windows Server时,总会有一个警告提示,如图1 图1 出现此警告的原因为证书为服务器的自签名证书,我们的客户端无法识别,故笔者思考,如何使用证书安全的使用远程桌面(RDP). 解决方法: 使用WIndowsServer自带的"AD证书服务",生成整个PKI,即拥有整套证书体系,自然所有有关认证问题迎刃而解.缺点是操作非常复杂,优点是安全,商业级别! 使

用openssl创建公钥私钥证书的脚本

MacBook-Pro:key username$ vim ./createselfsignedcertificate.sh 内容如下: mkdir data cd data #创建证书授权中心(CA)的私钥 openssl genrsa -out ca.pem 2048 #利用CA的私钥创建根证书 openssl req -new -x509 -days 36500 -key ca.pem -out ca.crt -subj \ "/C=CN/ST=Beijing/L=Beijing/O=Be

openssl生成自签名证书

1.生成x509格式的CA自签名证书 openssl req -new -x509 -keyout ca.key -out ca.crt 2.生成服务端的私钥(key文件)及申请证书文件csr文件 openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr 3.生成客户端的私钥(key文件)及申请证书csr文件 openssl genrsa -des3 -out client

如何快速创建自签名证书

在Windows中有时候e些服务需要配置证书.这时候就迫切需要一张证书来配置服务.对于测试环境,建立CA过于繁琐,使用openssl又要去找安装包很不方便,因为官方没有发布安装包需要自己编译或者找三方编译的包. 现在Windows的powechuhell终于可以方便的创建自签发的证书了.命令如下 New-SelfSignedCertificate -Subject test.ca.local -DNSName "test", "test.ca.local",&quo

Windows安装使用Openssl创建pks p12证书

什么是OpenSSL? OpenSSL是用于安全通信的著名开源密码学工具包,包括主要的密码算法.常见密码和证书封装功能. 1. OpenSSL官网 官方下载地址: https://www.openssl.org/source/ 2. Windows安装方法 OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具.例如 http://slproweb.com/products/Win32OpenSSL.html以该工具为例,安装步骤和使用方法如下: 2.1 选择32位

C#创建webservice并发布,部署到iis,客户端调用

1.新建一个web空项目: 2.添加web服务: 3.在添加的web服务中添加一个求和的方法:(注:必须在方法上面添加 [WebMethod]才会在网页上显示出来,其中(description为方法的描述)) using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace WebServiceDemo { /// <s

创建 Android 上使用的自签名证书(Creating self-signed certificates for use on Android)

创建 Android 上使用的自签名证书 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 创建 Android 上使用的自签名证书 Creating self-signed certificat

Azure 为Point-to-Site VPN连接使用自签名证书

本文介绍如何使用 makecert 创建自签名证书,然后从中生成客户端证书.以下步骤专为在 Windows 10 上使用 makecert 所编写.已对 makecert 进行了验证,以创建与 P2S 连接相兼容的证书. 对于 P2S 连接,证书的首选方法是使用企业证书解决方案,确保颁发常见名称值格式为"[email protected]"的客户端证书,而不是"NetBIOS domain name\username"格式. 如果没有企业解决方案,则需要自签名证书以

EzHttp 使用Https协议时证书如何部署

今天为EzHttp增加了https支持, EzHttp介绍见这里:使用EzHttp框架 开发基于HTTP协议的CS轻应用 服务端启动时会创建自签名证书,并将其绑定到启动参数url对应的端口上. 服务端导出的cer文件(证书的公钥部分)位于服务端程序运行目录下. 复制该文件到客户端目录并调用指定证书文件的初始化函数即可. 问:为什么需要手动部署而不使用客户端连接服务端自动下载? 答:因为是自签名证书,通过标准http协议传输有被劫持的风险. 如12306这种,中间人可以伪造一个名称和创建时间一样的