您的当前位置:首页正文

Windows系统下制作ssl证书笔记

2024-10-18 来源:威能网


Windows系统下制作ssl证书笔记

Windows系统下制作公钥私钥ssl证书

1.安装软件Win32OpenSSL_Light-1_1_0i.exe

2.进入C:\\OpenSSL-Win32\\bin目录下,双击openssl.exe,打开cmd窗口。(以下的命令均在openssl.exe窗口中执行)

3.使用version命令,查openssl版本

4.请求方(作为客户的我们)的操作

生成服务端(即网站)的私钥(key文件)及csr 文件(证书签名请求)

①生成网站私钥文件(后缀为.key)

genrsa -des3 -out server.key 2048

说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。注意:生成私钥,需要提供一个至少4位的密码。

②去除私钥密码(创建私钥的过程中,由于必须要指定一个密码。而这个密码会带来一个副作用,那就是在每次Apache启动Web服务器时,都会要求输入密码,这显然非常不方便。要删除私钥中的密码)。(实践中用ksweb时必须去除私钥密码,不然提示错误。

所以在合并为pem文件时你必须去除私钥密码。)

rsa -in server.key -out server.key

此时需要输入创建私钥时输入的密码

生成无密码的私钥文件server.key,原私钥文件会被覆盖,需要注意。

③从私钥文件生成证书请求(签名请求)文件(后缀为.csr)

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

(请求方的详细信息)

Country Name (2 letter code) [GB]: #所在国家代码(只支持两位字符)State or Province Name (full name) [Berkshire]: #州或省名

Locality Name (eg, city) [Newbury]: #所在城市的名字

Organization Name (eg, company) [My Company Ltd]: #组织或公司的名字

Organizational Unit Name (eg, section) []: #公司所在部门

Common Name (eg, your name or your server's hostname) []: #服务器名字或个人名字申请证书的域名(建议和httpd.conf中serverName必须一致否则有可能导致apache不能启动)

Email Address []: #邮箱地址

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []: #加密证书请求的密码

An optional company name []:

注意:填写资料时除Common Name(常用名)一项必填外,其他都可以空

Common Name 这里填127.0.0.1或localhost

完成以后在bin文件夹下有了

server.key(网站服务器私钥)

server.csr(网站证书请求文件)

以上工作完成后,我们将server.csr文件(网站证书请求文件)发给CA。等待CA服务商审核通过后给我们发证书。

5.CA服务商做的工作

创建CA的证书:CA要想给别人发证首先自己得有证

生成(CA服务器的)私钥和X509格式的CA自签名证书,这是一步生成两个文件的命令,

req -new -x509 -keyout ca.key -out ca.crt

(CA服务商的详细信息)

Country Name (2 letter code) [GB]: #所在国家

State or Province Name (full name) [Berkshire]: #州或省名

Locality Name (eg, city) [Newbury]: #所在城市的名字

Organization Name (eg, company) [My Company Ltd]: #组织或公司的名字

Organizational Unit Name (eg, section) []: #公司所在部门

Common Name (eg, your name or your server's hostname) []: #服务器名字或个人名字

Email Address []: #Email地址

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []: #加密证书请求的密码

An optional company name []: #

注意:

①生成私钥,需要提供一个至少4位的密码。

②输入证书信息时除Common Name(常用名,即最后显示的颁发者)一项必填外,其他都可以空(有一次啥也没填居然也行)

如果是服务器证书,common Name时输入域名。

如果生成个人证书,如用来加密签名电子邮件,commonName输入姓名,emailAddress是电子邮件地址

命令完成后,会在bin文件夹下生成两个文件

ca.key(CA服务器私钥。有去除私钥密码命令但不必这样)

ca.crt(根证书,也就是CA的自签名证书,说白了就是他自己的私钥签名的文件。梦溪博客说CA根证书(公钥),这从非对称加密的原理上讲是对的)

6.完成以上工作后,真正的签名,颁发证书开始了

CA服务商用生成的CA的证书为刚才生成的server.csr文件(即客户发来的证书请求

文件)签名(我觉得是用CA的私钥签名,也许这个根证书有什么特殊地方。但基本原理不会变(这里不做深入研究)。一定是CA的私钥签名这个根本不会变)

x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 36500

如果CA私钥有密码则输入密码。完成后在bin文件夹下会生成文件server.crt(网站服务器证书)

7.使用证书:

有了CA服务商签名的server.crt这个SSL证书文件,我们就可以把自己的网站做成https能访问的了.(这也是我们买证书的目的)具体参考“phpstudy环境Apache配置下实现https访问和301重定向.doc”文档。

因篇幅问题不能全部显示,请点此查看更多更全内容