您的位置:首页 > 运维架构

OpenSSL安装版证书生成,IIS10.0配置SSL证书(小白篇)

2017-03-20 16:03 573 查看
以下是个人根据网络上资源一步步整理的,由于根据参考的博客没能实现生成SSL证书,所以重新写了篇博客,工具安装包文章中也都有下载。。如果错误欢迎指教,第一次弄这个,各位见笑了。

一:安装IIS

1.安装步骤:控制面板-->

            程序-->

            启用或关闭windows功能-->

            勾选internet information Services

2.测试:在浏览器地址栏中输入地址 http://localhost 回车,如果正确出现相关页面则安装成功

二:OpenSSL安装及生成证书:

1.下载地址:http://slproweb.com/products/Win32OpenSSL.html,找到Download Win32 OpenSSL目录中的Win64 OpenSSL v1.1.0e Light安装包下载。(由于官方下载链接中没找到可用的安装版本,都是需要经过编译之后才能使用,所以在此第三方网站中进行下载)

2.安装,使用默认路径:C:\OpenSSL-Win64 。一路next下来完成安装

3.准备工作:

            1).拷贝一份openssl.cnf文件拷贝到bin文件夹中去(百度上下载了一个,地址:http://download.csdn.net/detail/huqingpeng321/9787342)

            2).    在bin文件夹中新建一个demoCA文件夹,再在demoCA文件夹中新建一个newcerts文件夹

            3).    在demoCA文件夹中新建文件:index.txt、index.txt.attr、serial(无后缀)。并在serial文件中输入两个字符 01

4.使用OpenSSL命令生成证书(运行安装路径中=文件夹bin中的openssl.exe文件)

    4.1).首先生成服务器端私钥(key文件)

        命令行:OpenSSL> genrsa -des3 -out server.key 1024

        运行后会提示输入密码:Enter pass phrase for server.key:    并且输入过程无显示,输入后直接enter确定即可密码设为123456方便记忆

        以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!

        去除key文件口令:

        命令行:OpenSSL> rsa -in server.key -out server.key

    

    4.2).生成服务器csr文件

        命令行:OpenSSL> req -new -key server.key -out server.csr -config openssl.cnf

        生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.

            You are about to be asked to enter information that will be incorporated

            into your certificate request.

            What you are about to enter is what is called a Distinguished Name or a DN.

            There are quite a few fields but you can leave some blank

            For some fields there will be a default value,

            If you enter '.', the field will be left blank.

            -----

            Country Name (2 letter code) [AU]:CN                                                             //中国

            State or Province Name (full name) [Some-State]:zhejiang                        //省份

            Locality Name (eg, city) []:hangzhou                                                                 //地区

            Organization Name (eg, company) [Internet Widgits Pty Ltd]:shuding      //机构

            Organizational Unit Name (eg, section) []:dashuju                                       //部门

            Common Name (e.g. server FQDN or YOUR name) []:server                    //名字

            Email Address []:                                                        //可不输入

            Please enter the following 'extra' attributes

            to be sent with your certificate request

            A challenge password []:                                           //可不输入

            An optional company name []:                                  //可不输入

    

    4.3).生成客户端私钥key文件和csr文件

        命令行:OpenSSL> genrsa -des3 -out client.key 1024                  //根据提示同上客户端的操作

                OpenSSL> rsa -in client.key -out client.key                                //去除key文件口令

                OpenSSL> req -new -key client.key -out client.csr -config openssl.cnf    //根据提示同上服务器的操作 (个人信息要保持一致)

    

    4.4).制作CA文件(CSR文件必须有CA的签名才可形成证书)

        命令行:OpenSSL> req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf    //根据提示同上服务器的操作 (个人信息要保持一致)

    

    4.5).用生成的CA的证书为刚生成的server.csr,client.csr文件签名:

        命令行:OpenSSL> ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf    //有出现选项则选y

                OpenSSL> ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf               //同上

    

    4.6).把生成的.crt格式证书转换为.pfx格式(Apache使用的SSL证书是.crt格式,如果使用windows主机的iis服务,则不能直接使用此证书,需要要将.crt格式的证书转换成.pfx格式)

        命令行:OpenSSL> pkcs12 -export -out server.pfx -inkey server.key -in server.crt

                        OpenSSL> pkcs12 -export -out client.pfx -inkey client.key -in client.crt

                        OpenSSL> pkcs12 -export -out ca.pfx -inkey ca.key -in ca.crt

                

    备注:

        1.若制作CA文件或用CA给文件签名时出错:    failed to update database

                                                                                          TXT_DB error number 2

                                                                                          error in ca

            则修改demoCA下的index.txt.attr,将unique_subject = yes改为unique_subject = no 。

        2.客户端、服务器和CA的国家,省份,地区等信息都必须一致,不然后面给.csr文件签名会报错

        

----现在可以在安装目录的bin文件夹中看到生成的几个证书:ca.pfx、client.pfx、server.pfx。

三:IIS配置服务器证书

    1.windows搜索框输入iis 并右键以管理员运行IIS服务器

    2.双击左侧连接栏的顶级目录DESKTOP-SOVQOAH,然后在主页中IIS项下选择服务器证书,双击打开

    3.在服务器证书页中,右侧单击导入,在弹出的对话框中选择OpenSSL生成的服务器证书文件(注:必须勾选允许导出此证书)

    4.在左侧连接栏中右键单击网站,选择添加网站(根据提示信息选择自己需要设置为HTTPS的网站,下面以默认的Default Web Site来讲)

    5.右键单击Defaut Web Site 选中编辑绑定,弹出的对话框中点击右侧的添加

    6.根据提示选择类型为Https,IP地址默认未分配,端口默认443.主机名可不选,点击确定,然后关闭绑定对话框

    7.双击左侧的Defaut Web Site,在其主页中双击选中SSL设置

    8.在SSL设置页面中勾选 要求SSL,客户证书选择忽略。然后单击右侧操作栏中的启动按钮

    9.在地址栏中输入 https://localhost 回车,测试是否出现相关页面(若提示链接不安全等,则可添加例外,继续浏览网页)

    

tag-----------------------若上述测试成功

    10:在IIS管理器中,进入Default Web Site的SSL设置页面,将客户证书选中为必须,然后单击右侧操作栏中的启动按钮

    11:在地址栏中输入 https://localhost 回车,测试是否出现相关页面

        ---->>正常提示:HTTP 错误 403.7 - Forbidden

                        您尝试访问的页面要求您的浏览器具有该 Web 服务器可识别的安全套接字层(SSL)客户证书

    12此时,我们应该导入客户端证书(以firefox浏览器为例)

        1).打开菜单-->选项-->高级-->查看证书-->您的证书-->导入    (证书管理器窗口)

        2).在打开的文件浏览窗口中选中OpenSSL生成的客户端证书,然后点击打开。导入完成

    13:在地址栏中输入 https://localhost 回车,测试是否出现相关页面

        ---->>若提示:    HTTP 错误 403.16 - Forbidden

                        您的客户证书不受信任或无效。

            原因:因为证书颁发机构的根证书不是 IIS Web 服务器上的受信任根证书颁发机构证书存储中,将出现此问题。

        在 IIS Web 服务器上,在受信任的根证书颁发机构证书存储中安装证书颁发机构的根证书。若要执行此操作,请执行以下步骤:

        1).单击开始,在开始搜索框中键入 mmc.exe,右键单击 mmc.exe,然后单击以管理员身份运行

        2).在文件菜单上,单击添加/删除管理单元

        3).在可用的管理单元下,单击证书,然后单击添加

        4).单击计算机帐户,然后单击下一步

        5).单击本地计算机,单击完成,然后单击关闭

        6).要退出向导,请单击确定

        7).展开证书、受信任的根证书颁发机构,右键单击证书,指向所有任务,然后单击导入

        8).在证书导入向导中,单击下一步

        9).在文件名框中,键入证书颁发机构的根证书的位置,然后单击下一步

        10).单击下一步,然后单击完成

        11).同时在浏览器的管理器窗口中(同上面12.1步骤进入)的证书机构项中导入OpenSSL生成的自签名CA证书

    14:在地址栏中输入 https://localhost 回车,测试是否成功

        
tag--------------------------------最后一步我也未成功,报错我客户端证书无效不受信任,不知道是不是浏览器本身对于第三方自签名证书的就不受信任???我用的是firefox和chrome,都不行。。。求高手指点

       
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: