前言
开发项目免不了本地配置https环境,本文将介绍自己创建证书颁发机构(CA),为自己的本地开发环境颁发证书
因为本机是win10,所以下面是以window为例
下载OpenSSL
先需要的是OpenSSL的可执行文件,点击下载,下载完成之后安装即可
ps:如果将OpenSSL选择的安装文件夹的“\bin\”文件夹已添加到系统路径环境变量中,就可以从任何地方使用。
键入命令openssl
当然如果之前装过了git
(安装),会默认安装openssl
,路径如下:
创建私钥
- 打开openssl ,下面是两种打开方式(git命令好像有些问题)
(1)双击openssl.exe
(2)配置环境变量的,打开cmd键入openssl
打开openssl - 创建
键入如下命令
genrsa -des3 -out rootSSL.key 2048
输入两次密码,我设置的是123456
此时在当前目录下生成一个密钥文件:rootSSL.key
创建证书文件
您可以选择创建一个持续X天的证书文件。在本例中,我们将选择1024天,但您可以选择任何数量-越长越好。
键入以下命令:
req -x509 -new -nodes -key rootSSL.key -sha256 -days 1024 -out rootSSL.pem
根据自己情况依次输入
秘钥密码:123456
两个字母的国家代码:我用“CN”表示中国。
你的州或省:beijing。
你的城市:beijingshi。
一个组织名称:offcn。
一个组织单位的名字:zg。
一个公共名称,如服务器名或完全限定的域名(FQDN):yzj.com。
管理员电子邮件地址:xxx@qq.com。
完成后你的当前目录下面会生成一个rootSSL.pem
证书文件
信任根SSL证书
我们将使用Microsoft管理控制台(MMC)来信任根SSL证书。
-
键盘
win+R
-
输入
MMC
回车
-
选择菜单 “文件 > 增加/删除管理单元(M)”
-
选择 “证书” 并 “添加”
-
选择 “计算机账户(C)” 并 “下一步”
-
选择 “本地计算机(运行此控制台的计算机)” 并 “完成”
-
单击 “确定”返回到 MMC 界面
-
双击 “证书 (本地计算)” 展开列表
-
选择 “第三方根证书颁发机构”, 右击 “证书” 并选择 “所有任务” 中的 “导入”
-
单击 “下一步” 并浏览选择 “rootSSL.pem” 文件,在前面 Step 2创建的根证书文件
-
选择 “将所有的证书都放入下列存储” 并选择 “第三方根证书颁发机构”. 单击 “下一步” 直到完成向导。
-
双击证书,可以看到本次添加的证书
为本地域颁发证书
本地域名的绑定这里就不赘述了,应该都是知道
- 为新域创建私钥
我们将创建一个名为“m.sd.yzj.demo.key”的文件,其中包含该域的私钥信息。
键入以下命令:
req -new -sha256 -nodes -out m.sd.yzj.demo.csr -newkey rsa:2048 -keyout m.sd.yzj.demo.key -subj "/C=CN/ST=beijing/L=beijingshi/O=offcn/OU=yzj.com/CN=yzj/emailAddress=xxx@qq.com"
如果出现如下错误,先关闭窗口,再重新打开openssl
2604:error:08064066:object identifier routines:OBJ_create:oid exists:crypto\objects\obj_dat.c:698: error in req
可以更改“-subj”参数以反映您的国家、省、位置等
- 使用根SSL证书颁发新证书
x509 -req -in m.sd.yzj.demo.csr -CA ../rootSSL.pem -CAkey ../rootSSL.key -CAcreateserial -out m.sd.yzj.demo.crt -days 500 -sha256 -extensions "authorityKeyIdentifier=keyid,issuer\n basicConstraints=CA:FALSE\n keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment\n subjectAltName=DNS:m.sd.yzj.demo"
注意看好rootSSL.pem
和rootSSL.key
路径
在Web服务器中使用新的本地域证书
配置文件中添加(我用的nginx)
listen 443 ssl;
ssl_certificate D:\wwwroot\ssl\m.sd.yzj.demo\m.sd.yzj.demo.crt;
ssl_certificate_key D:\wwwroot\ssl\m.sd.yzj.demo\m.sd.yzj.demo.key;
网友评论