OpenSSl生成SSL证书(支持https)

一:环境与安装说明

     WIN7_64,Nginx服务器,OpenSSL_Win64。本人使用phpStudy集成开发环境,使用Nginx+PHP,支持浏览器https请求。

     nginx下载地址:http://nginx.org/en/download.html 
     openssl下载地址:http://slproweb.com/products/Win32OpenSSL.html 
     官网地址:https://www.openssl.org/source/

二:安装OpenSSL及配置

    1>下载后双击安装,默认安装路径是C:\OpenSSL-Win64

    2>配置环境变量,这里不细说,略过。

    

三:生成ssl证书

   1>首先,无论是在Linux下还是在Windows下的Cygwin中,进行下面的操作前都须确认已安装OpenSSL软件包。

   2>创建根证书密钥文件myopenssl.key,输入以下命令:  openssl genrsa -des3 -out myopenssl.key

       OpenSSl生成SSL证书(支持https)

      这里会提示让输入两次密码,请保持两次密码一致

      Enter pass phrase for root.key: ← 输入一个新密码 
      Verifying – Enter pass phrase for root.key: ← 重新输入一遍密码

   3>创建根证书的申请文件myopenssl.csr,输入以下命令: openssl req -new -key myopenssl.key -out myopenssl.csr

      OpenSSl生成SSL证书(支持https)

      以下是提示信息  

        Enter pass phrase for root.key: ← 输入前面创建的密码 
        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 ← 国家代号,中国输入CN 
        State or Province Name (full name) [Some-State]:BeiJing ← 省的全名,拼音 
        Locality Name (eg, city) []:BeiJing ← 市的全名,拼音 
        Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名 
        Organizational Unit Name (eg, section) []: ← 可以不输入 
        Common Name (eg, YOUR name) []: ← 此时不输入 
        Email Address []:admin@mycompany.com ← 电子邮箱,可随意填

        Please enter the following ‘extra’ attributes 
        to be sent with your certificate request 
        A challenge password []: ← 可以不输入 
        An optional company name []: ← 可以不输入

    4>创建一个自当前日期起为期十年的根证书myopenssl.crt,输入以下命令:openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey myopenssl.key -in myopenssl.csr -out myopenssl.crt

     OpenSSl生成SSL证书(支持https)

      以下是提示信息:

     Enter pass phrase for root.key: ← 输入前面创建的密码

     5>创建服务器证书密钥server.key,输入以下命令:openssl genrsa –des3 -out server.key 2048

     OpenSSl生成SSL证书(支持https)

     运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取      其他的保护措施。

     去除key文件口令的命令: 
      openssl rsa -in server.key -out server.key

     6>创建服务器证书的申请文件server.csr,输入以下命令:openssl req -new -key server.key -out server.csr

      OpenSSl生成SSL证书(支持https)

    Country Name (2 letter code) [AU]:CN ← 国家名称,中国输入CN 

    State or Province Name (full name) [Some-State]:BeiJing ← 省名,拼音 
    Locality Name (eg, city) []:BeiJing ← 市名,拼音 
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名 
    Organizational Unit Name (eg, section) []: ← 可以不输入 
    Common Name (eg, YOUR name) []:www.mycompany.com ← 服务器主机名,若填写不正确,浏览器会报告证书无效,但并不影响使用 
    Email Address []:admin@mycompany.com ← 电子邮箱,可随便填

    Please enter the following ‘extra’ attributes 
    to be sent with your certificate request 
    A challenge password []: ← 可以不输入 
    An optional company name []: ← 可以不输入

     7>创建自当前日期起有效期为期三年的服务器证书server.crt,输入以下命令:

     openssl x509 -req -days 1095 -sha1 -extensions v3_req -CA myopenssl.crt -CAkey myopenssl.key -CAserial myopenssl.srl -CAcreateserial -in server.csr -out server.crt

      OpenSSl生成SSL证书(支持https)

    8>创建客户端证书密钥文件client.key,输入以下命令:openssl genrsa -des3 -out client.key 2048

    OpenSSl生成SSL证书(支持https)

    Enter pass phrase for client.key: ← 输入一个新密码 
    Verifying – Enter pass phrase for client.key: ← 重新输入一遍密码

    9>创建客户端证书的申请文件client.csr,输入以下命令:openssl req -new -key client.key -out client.csr

     OpenSSl生成SSL证书(支持https)

    Country Name (2 letter code) [AU]:CN ← 国家名称,中国输入CN 
    State or Province Name (full name) [Some-State]:BeiJing ← 省名称,拼音 
    Locality Name (eg, city) []:BeiJing ← 市名称,拼音 
   Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名 
   Organizational Unit Name (eg, section) []: ← 可以不填 
   Common Name (eg, YOUR name) []:Lenin ← 自己的英文名,可以随便填 
   Email Address []:admin@mycompany.com ← 电子邮箱,可以随便填

   Please enter the following ‘extra’ attributes 
   to be sent with your certificate request 
   A challenge password []: ← 可以不填 
   An optional company name []: ← 可以不填

   10>创建一个自当前日期起有效期为三年的客户端证书client.crt,输入以下命令:

   openssl x509 -req -days 1095 -sha1 -extensions v3_req -CA myopenssl.crt -CAkey myopenssl.key -CAserial myopenssl.srl -CAcreateserial -in client.csr -out client.crt

   OpenSSl生成SSL证书(支持https)

   11>将客户端证书文件client.crt和客户端证书密钥文件client.key合并成客户端证书安装包client.pfx,输入以下命令:openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx

    OpenSSl生成SSL证书(支持https)

   Enter pass phrase for client.key: ← 输入上面创建的密码 
   Enter Export Password: ← 输入一个新的密码,用作客户端证书的保护密码,在客户端安装证书时需要输入此密码 
   Verifying – Enter Export Password: ← 确认密码

    12>保存生成的文件备用,其中server.crt和server.key是配置单向SSL时需要使用的证书文件,client.crt是配置双向SSL时需要使用的证书文件,client.pfx是配置双向SSL时需要客户端安装的证书文件.crt文件和.key可以合到一个文件里 面,把2个文件合成了一个.pem文件(直接拷贝过去就行了)。

原创文章,作者:ROSNH,如若转载,请注明出处:http://www.wangzhanshi.com/n/16453.html

(0)
ROSNH的头像ROSNH
上一篇 2025年1月2日 12:39:16
下一篇 2025年1月2日 12:39:18

相关推荐

  • ssl证书过期怎么解决

    网站安装ssl证书以后,不仅可以保障用户和网站的隐私与安全性,而且也有利于提升网站的形象。但是SSL安全证书是有有效期限的,如果出现了ssl证书过期怎么办呢?尤其是有的时候,当证书…

    2025年1月2日
  • php怎样安装openssl扩展

    php安装openssl扩展的方法:首先在PHP安装包中找到curl扩展目录;然后将config0.m4文件重命名;接着运行phpize;最后编译安装,并设置PHP配置文件php.…

    ssl证书 2025年1月2日
  • 关于SSL证书分类及好处介绍

    这篇文章主要介绍了关于SSL证书分类及好处介绍,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。 SSL证书是一种安全证书,这类资格证书关键维护网址的网络信息安全,…

    2025年1月2日
  • ssl证书私钥的工作原理是什么

    相信不少的网友都知道ssl证书在互联网中的作用,知道ssl证书可以给网站的客户端和服务端打开一条安全通道,保护客户在网站中的信息。但是即便是很多经常接触互联网的人,也不知道ssl证…

    2025年1月2日
  • ssl证书与单域名证书有什么不同

    互联网的安全在当下是越来越重要了,给网站安装SSL证书,也是为了提升网站的安全性,SSL证书是加密传输的协议,SSL证书的种类比较多,根据网站的域名数量被分为了单域名SSL证书、多…

    2025年1月2日
  • Linux系统中如何查看openssl版本

    查看 openssh 版本命令  ssh -V 查看 openssl 版本命令  openssl version Linux有哪些版本 Li…

    ssl证书 2025年1月2日
  • ssl证书介绍

    SSL证书又称“服务器证书,https证书,CA证书,网站安全证书”等,是数字证书的一种 SSL证书产品如下:单域名DV版(保护一个具体域名)多域名OV版(可以将多个域名放在一张证…

    ssl证书 2025年1月2日
  • SSL证书作用是什么

    SSL证书在网络上的运用越来越广泛,在互联网上的运输保证较其他加密措施来说,SSL证书较能获得互联网消费者的青睐,网友们的数据信息更能获得保障。很多新晋网友也将选择SSL证书安装。…

    2025年1月2日
  • 微信ssl证书是什么?以及下载ssl证书的方法

    SSL证书的安装在当下的这个时代,受到了很多人的关注,给网站安装SSL证书是很有必要的,SSL证书能够保障网站的数据传输加密,也可以实现网站的身份验证,用户在申请获得SSL证书的同…

    2025年1月2日
  • 申请免费ssl证书的方法

    SSL证书是非常不错的一种安全证书,不过市面上是很少看见免费SSL证书的,因为免费SSL证书很多是不被网站认可的。那么如果想要获得SSL证书的话,怎么获取免费证书呢?下面就来看看怎…

    2025年1月2日

发表回复

登录后才能评论