请选择 进入手机版 | 继续访问电脑版

巅峰霸主

 找回密码
 立即注册

QQ登录

只需一步,快速开始

[服务器] Windows使用openssl生成CSR证书签名请求和私钥key详细步骤方法

[复制链接] [添加相关主题]
godkings 发表于 2019-5-26 18:49:00 | 显示全部楼层 |阅读模式

游客只能显示部分内容,请登录后查看帖子完整内容!!!注册完全免费。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Windows系统使用openssl生成CSR证书签名请求的方法,网上有很多自动生成CSR的工具,只需要输入域名和相关信息即可生成,很方便,但是我就觉得用在线工具生成的CSR证书请求文件不安全或者说存在潜在的安全威胁,因为生成了CSR文件后还会生成一个key文件,这个key文件是要放到服务器上的,那个在线生成CSR证书的工具应该是可以记录你生成的域名和key的相关代码,万一别人使用你的key代码来攻击网站(具体会不会我不知道,但是以防万一,还是自己生成CSR放心些)是不是让本来安全的https的网站变得不安全,有了那个key代码再结合其他的辅助工具抓取你的账户相关信息和上传非法木马文件,这样我们的ssl证书加密其实也就好比没有关大门一样,还不如不使用https!因为我之前也有一个网站就是那样生成的,同时也被挂了马,感觉是key泄露了,你可以百度ssl证书攻击的相关文章。因为找了好多教程都写的很泛,根本看不懂在写个啥,所以决定写一个详细的带有操作步骤的教程,以供需要的同伴参考。
特别说明:
openssl不必安装在服务器上(如果你喜欢装服务器上也是可以的),可以安装在你正常使用的任何一台电脑上!我们主要用openssl这个工具来生成csr证书请求文件和那个密钥key文件,csr文件用来在你购买ssl证书后配置验证域名时填入的代码,而openssl生成的另一个key文件则要上传到服务器上,在配置网站的https时需要用到。
多数情况下,使用openssl生成csr证书请求文件一般都是服务器使用Apache或nginx作为web服务器。

openssl安装使用方法如下。
下载openssl并安装,因为这个是编译好的,用起来方便,根据你自己的电脑选择32位或64位。
下载地址:http://slproweb.com/products/Win32OpenSSL.html
搜狗截图20190526163157.jpg
安装openssl说明:
安装时需要注意不要安装在C盘,因为在后面生成CSR的时候默认需要写入权限(如Windows 10系统C盘权限太高的问题生成不了),所以将openssl安装在非系统盘,如D盘,我安装在D盘的(我的安装路径是D:\Program Files\OpenSSL-Win64\bin)。到这一步的时候记得修改以下openssl的安装目录:
搜狗截图20190526145356.jpg

然后安装过程中的这一步,下图所示,选择“the openssl binaries(/bin) directory”,默认的是第一个,要记得改一下。
搜狗截图20190526145534.jpg

然后一直下一步,直到完成。
搜狗截图20190526145630.jpg

到此openssl安装完成。下面开始生成CSR证书验证文件。



使用openssl生成CSR证书请求文件
使用win+r键输入cmd打开命令提示符,转到openssl的安装目录bin目录下(我的openssl的bin目录在D:\Program Files\OpenSSL-Win64\bin,上面说了我安装在D盘的,先进入openssl的bin目录):
1.输入“d:”后回车进入D盘。
2.输入“cd D:\Program Files\OpenSSL-Win64\bin”回车,进入bin目录,下图所示。
搜狗截图20190526165110.jpg

3.输入以下代码后回车。需要注意将下面代码中的domain.key和domain.csr要改为你需要生成证书请求的域名(如dfbazhu.com,不带用www),如下图所示,我的截图已经改了哒。
  1. openssl req -new -nodes -newkey rsa:2048 -keyout domain.key -out domain.csr
复制代码


搜狗截图20190526165808.jpg

输入上面的代码回车以后会出现以下界面:

搜狗截图20190526170838.jpg

然后需要输入一些关键信息(输入完一个后直接回车,紧接着输入下一个信息),需要输入的信息说明请见下表(按照下表中“示例”依样画瓢即可,也可参考我下面的截图哦):

字段 说明 示例
Country Name ISO国家代码(两位字符) CN(不能为空,不能随便写!默认CN表示中国的意思,只能2个字母,如需其他国家代码可自行百度)
State or Province Name 所在省份 tianjin(不能为空,也可以随便写hebei、shanghai、sichuan等)
Locality Name 所在城市tianjin(不能为空,随便写shijiazhuang、shanghai、chengdu、kunming或者与省份的名称一样)
Organization Name 公司名称 tengxun keji Inc(不能为空,随便写什么都可以,如China baidu keji gongsi)
Organizational Unit Name 部门名称baidu yanfabu(不能为空,随便写什么都可以,如xiaoshou、yanfabu、sales bumen、dfgfd都可以的)
Common Name 申请SSL证书的域名 www.dfbazhu.com(不能为空且域名要正确!填写带www的完整域名。)
Email Address 验证邮箱 输入您的邮箱(可不填,但是建议填一下你的可用邮箱)
A challenge password 密码 留空(直接回车)

上表填写截图如下,隐去了部分打马赛克了。

搜狗截图20190526171816_看图王.jpg

直到再一次出现openssl的安装目录bin目录时即表示csr证书生成完毕:

搜狗截图20190526235239.jpg

生成完成之后就可以关闭命令提示符了,打开D:\Program Files\OpenSSL-Win64\bin目录,会看到我们刚生成的两个“csr和key”后缀的文件,下图所示,用记事本或notepad++打开刚生成的那个CSR文件:

搜狗截图20190526162134.jpg

下图所示:

搜狗截图20190526173014.jpg

然后全选复制全部代码粘贴到你需要申请的CSR证书请求中,等待你购买的证书商颁发的相应的ssl证书代码就可以了,一般都很快,有的几分钟就能签发下来。
最后要保管好这两个文件,千万不要泄露那个key格式的文件,key格式文件里面保存的是私钥,也就是我们所说的私钥文件,等你ssl证书签发下来,你需要将那个key格式的文件上传到你的服务器然后进行网站的https部署。前面说了不用网上那些填写域名和相关信息自动生成csr证书请求文件的道理就在这里,你生成的私钥(key文件里的代码)人家很可能是知道的,私钥泄露也可能导致黑客伪造证书进行网站攻击,买了ssl证书等于白买。





nginx安装ssl证书实现https访问
通过上面的csr申请,一般很快就可以得到ssl证书代码,签发给我们的ssl证书代码通常会有3部分证书代码:Server Certificate(服务器证书)、CA Certificates (CA证书)INTERMEDIATE(中间证书)、ROOT(根证书)这3个。有了这3个证书代码该怎么使用如何部署到nginx服务上?

我们需要将“Server Certificate(服务器证书)、CA Certificates (CA证书)INTERMEDIATE(中间证书)”这2个证书代码合并在一起:用记事本或notepad++打开一个空白文档,下图所示,全部复制“Server Certificate(服务器证书)”里面的代码到记事本,然后换一行将“CA Certificates (CA证书)INTERMEDIATE(中间证书)”里面的代码全部复制粘贴进来,要注意格式,服务器证书代码和ca证书代码之间不能有空格且不能在同一行,格式要和我下图中一样,并且证书代码不能缺少里面的【-----BEGIN CERTIFICATE-----】和【-----END CERTIFICATE-----】。

搜狗截图20190527003447.jpg

服务器证书代码和ca证书代码放在一起后,我们将上面的文件保存为“ssl_dfserver.cer”格式的文件(名称随便您取什么都可以,但是格式必须是.cer格式,因为cer格式是证书文件格式),然后将我们刚制作的“ssl_dfserver.cer”和前面用openssl生成csr时生成的那个“.key”格式的文件一起上传到服务器的网站根目录(也可以是和网站同一个磁盘的其他文件夹),打开nginx的nginx.conf文件,在最后一个“}”的前面一行输入以下代码:
  1. server {
  2.         listen       443 ssl;
  3.         server_name  www.dfbazhu.com;

  4.         ssl_certificate      /myweb/ssl_dfserver.cer;
  5.         ssl_certificate_key  /myweb/ssl_dfkey.key;

  6.         ssl_session_cache    shared:SSL:1m;
  7.         ssl_session_timeout  5m;

  8.         ssl_ciphers  HIGH:!aNULL:!MD5;
  9.         ssl_prefer_server_ciphers  on;
  10. ......
复制代码
需要修改上面代码中的域名为您的域名,要保证代码ssl_certificate /myweb/ss_dfserver.cer;和代码ssl_certificate_key /myweb/ssl_dfkey.key;中的路径正确,您的cer证书名称和key私钥名称正确,然后退出nginx,重启nginx服务器,输入你的https域名测试看是否可以访问。注意您可以随意修改cer文件和key文件的名称但不可以改变他们的格式!
搜狗截图20190526171816.jpg
搜狗截图20190526224558.jpg


上一篇:Windows server 2016数据中心版激活码windows2016激活密钥序列号
下一篇:Windows server系统nginx不能启动自动退出的解决方法

相关帖子

回复

使用道具 举报

烈火大地 发表于 2020-7-2 16:21:00 | 显示全部楼层
这个教程很好,csr证书生成太麻烦,虽然简单,但是不经常使用,容易忘记操作步骤
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|巅峰霸主 ( 京ICP备12023415号-2 )

声明:本站的任何信息和内容仅代表作者的立场和观点,与巅峰霸主网无关。

禁止在巅峰霸主网发布任何与《中华人民共和国法律》相抵触的言论!

GMT+8, 2020-9-23 13:58 , Processed in 0.139873 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表