含蓄证书生成

Windows下Nginx配置SSL达成Https访问(包蕴证书生成)

Windows下Nginx配置SSL已毕Https访问(蕴涵证书生成)

本例在Windows下测试

        ****
在Linux下步骤基本等同,Nginx在编译的时候要求襄助–with-http_ssl_module模块,不帮助需另行编译安装

        **** Centos下yum install openssl openssl-devel

        **** 前提已经安装好了Openssl,并曾经配备好了环境变量

        ****
https可反向代理映射到http地址,但http不可反向代理映射到https地址。

 要求修改httpd.conf 、httpd-vhosts.conf四个文本

    1、修改conf/httpd.conf 裁撤以下注释,使apache启动时调用ssl服务:  

  #LoadModule ssl_含蓄证书生成。module modules/mod_ssl.so (去掉后边的‘#’号)

   #Include conf/extra/httpd-ssl.conf (去掉前边的‘#’号)

  2、生成证书   

     win+R:cmd进入命令行,进入apache安装目录bin文件夹下

    设置OPENSSL_CONFIG配置,执行命令 set
OPENSSL_CONF=..\conf\openssl.cnf

    (a)生成服务端的key文件

            执行命令:openssl genrsa -out server.key 1024

             在bin目录中生成server.key文件

    (b)生成签署报名

             执行命令:openssl req -new -out server.csr -key server.key

           
 在bin目录中生成server.csr文件,在举行以上命令时会提示输入相关消息,其中 Common
Name [] 须求与配置文件中的ServerName一致,否则apache启动时将会报错。

            Country Name<2 letter code>[AU] : cn

            State or Province Name [Some-State] : jangsu

            Locality Name[] : nanjing

           Oraganization Name [Internet Widgits Pty Ltd]: epms.cwp

           Organizational Unit Name [] epms

           Common Name[]:ServerName

            Email Address []: …………………………….

            ……………………………………………………………………….

            A challenge password []: (可不输入)

 (c)生成CA的key文件

         执行命令:openssl genrsa -out ca.key 1024

         在目录bin下生成ca.key文件

(d) 生成CA自签定证书

    执行命令:openssl req -new -x509 -days 365 -key ca.key -out ca.crt

      在目录bin下生成ca.crt文件

(e)生成CA的服务器签署证书

        执行命令:openssl ca -in server.csr -out server.crt -cert ca.crt
-keyfile ca.key

      
 在此地报错了,按照网上的布道新建相应的文本夹,再实施一回就足以了。

        在bin下新建demoCA文件夹             =>bin/demoCA

        在demoCA下新建index.txt              
  =>bin/demoCA/index.txt

        在demoCA下新建serial.txt,其内容为01,重命名删除.txt =>bin/demoCA/serial

        在demoCA下新建newcert文件夹 =>sbin/demoCA/newcerts

3、修改httpd-ssl.conf文件

   
 (a)按照须求修改httpd-ssl.conf的默许端口号“443”,那里将拥有的443改动为“6044”,同时修改ServerName。

        (b)
修改有关证书路径,把路子设置为conf下的key目录,把变化的注解放进那么些目录

        SSLCertificateFile    xxx/conf/key/server.crt   
(服务器证书的职位)

        SSLCertificateKeyFile    xxx/conf/key/server.key
(服务器私钥的岗位)

        SSLCACertificateFile    xxx/key/conf/ca.crt     
(CA根证书的地方,举行客户端验证时须求)

        (c) 废除注释

        #SSLVerifyClient require
(去掉前面的‘#’号,进行客户端验证时需求)

        #SSLVerifyDepth 1 (去掉后面的‘#’号,把10改为1,举行客户端验证时要求)

        (d) 接纳性修改,如若在运转时报错,可修改SSLSessionCache再举办

        修改前:

         #SSLSessionCache “dbm:/Apache24/logs/ssl_scache”

          SSLSessionCache “shmcb:/Apache24/logs/ssl_scache(512000)”

          SSLSessionCacheTimeout 300

        修改后:

        SSLSessionCache “dbm:D:/phpStudy/Apache/logs/ssl_scache”

        #SSLSessionCache “shmcb:/Apache24/logs/ssl_scache(512000)”

        SSLSessionCacheTimeout 300

4、重启apache,执行五个指令net stop Apache2.2和net start
Apache2.2,浏览器中输入https//…………..页面会提醒 It works!

5、修改httpd-vhosts.conf
设置反向代理,重启apache,浏览器中输入https//…………..:6044页面会跳转到相应的代办页面(注意DocumentRoot路径要设有)

“`

Listen 443

NameVirtualHost *:443

#

# VirtualHost example:

# Almost any Apache directive may go into a VirtualHost container.

# The first VirtualHost section is used for all requests that do not

# match a ServerName or ServerAlias in any  block.

#

DocumentRoot “D:/www”

ServerName ……:443

SSLEngine on

SSLProxyEngine on

SSLCertificateFile “D:/phpStudy/Apache2/conf/key/server.crt”

SSLCertificateKeyFile “D:/phpStudy/Apache2/conf/key/server.key”

ProxyRequests Off

Order deny,allow

Allow from all

ProxyPass /

ProxyPassReverse /

“`

Nginx+https

       **** 和Apache一样,需求转变证书和改动配置文件*

     1、生成证书

       (1) 首先在
nginx设置目录中开创ssl文件夹用于存放证书。比如我的文件目录为
C:\wnmp\nginx\ssl , 以管理员身份进入命令行情势,进入ssl文件夹。
命令为: cd  c:/wnmp/nginx/ssl               

        (2) 制造私钥    

             在指令行中执行命令: openssl genrsa -des3 -out lee.key
1024     (lee文件名可以自定义),如下图所示:   

澳门葡京备用网址 1

*  输入密码后,再一次重复输入确认密码。记住此密码,前面会用到。*    

        (3)创建csr证书    

                  在指令行中执行命令:  openssl req -new -key lee.key
-out lee.csr    (key文件为刚刚变动的公文,lee为自定义文件名)    

澳门葡京备用网址 2

澳门葡京备用网址 3

                    如上图所示,执行上述命令后,须求输入新闻。输入的音讯中最要紧的为
Common Name,那里输入的域名即为大家要拔取https访问的域名。

                    以上步骤完毕后,ssl文件夹内冒出七个文本:

澳门葡京备用网址 4

  (4)去除密码。

      
 在加载SSL协助的Nginx并运用上述私钥时除了必须的口令,否则会在起步nginx的时候须求输入密码。

     复制lee.key并重命名为lee.key.org

                  能够利用此命令行,也得以拔取鼠标操作     copy
lee.key lee.key.org

                 去除口令,在命令行中执行此命令:  openssl rsa
-in lee.key.org -out
lee.key  (lee为自定义文件名)

     如下图所示,此命令须要输入刚才设置的密码。

澳门葡京备用网址 5

        (5)生成crt证书

               在指令行中执行此命令: openssl x509 -req -days 365 -in
lee.csr -signkey lee.key -out lee.crt  (lee为自定义文件名)

澳门葡京备用网址 6

   证书生成终结,ssl文件夹中一共生成如下4个文本,大家须求采纳到的是lee.crt和lee.key。

澳门葡京备用网址 7

 2. 修改nginx.conf文件

      nginx.conf文件位于:C:\wnmp\nginx\conf

   找到该公文中如下代码的职责展开改动:

澳门葡京备用网址 8

               修改为:***                

澳门葡京备用网址 9

    重启nginx,
在浏览器中,访问 https://127.0.0.1。发现并发证书认证,并可以得逞访问。(127.0.0.1
为转变证书时,Common Name输入的域名) (执行此步骤时,要求安插好Virtual
Host,并且在127.0.0.1 开放目录中添加了index.php默认入口访问文件。)

   ***
访问后会发现https被灰色划线是因为我们接纳的是投机生成的申明,此证书不受浏览器信任,若是想使其变成蓝色,则要求向证书管理机构进行申请。

3. 添加重定向,自动跳转使用https。

 在nginx.conf中virtual host中如下代码地点添加一行代码:

澳门葡京备用网址 10

     重启nginx 访问
 浏览器会自行跳转到 https://127.0.0.1 并打响访问

澳门葡京备用网址 ,一、安装Nginx

官方下载地址:http://nginx.org/en/download.html

一贯下载1.13.5版本的链接  链接:https://pan.baidu.com/s/1dXGOZO
密码:fjih

  首先要表达为什么要落实https?

  首先要验证为什么要兑现https?

二、安装Openssl

心想事成Https首先须要向管理机构申请证书,所以通过Openssl自己生成证书。首先我们需要用到生成证书的Openssl软件

法定下载地址:http://www.openssl.org/source/ 不过合法没有提供window版本,可应用第三方openssl软件

感觉比较好用的:链接:https://pan.baidu.com/s/1o96oaaY
密码:0kbq

  HTTP全名超文本传输协议,客户端据此获取服务器上的超文本内容。超文本内容则以HTML为主,客户端得到HTML内容后可按照标准开展解析显示。因而,HTTP紧要担负的是“内容的呼吁和收获”。难点就出在那有些。行监控、劫持、阻挡等行为很不难造成网站泄密,一些紧要参数比如登录密码开发者会在客户端举办MD5加密,但是网络所承载的机密新闻远不只是密码,搜索内容相同属中国“氢弹之父”感音讯。现近日,百度、谷歌(Google)、Github等网站已经全站启用https,https就像给网站上了一个“锁”,HTTPS做的就是给请求加密,让其对用户尤其安全。对于自身而言除了有限支撑用户利益外,还可避免本属于自己的流量被勒迫,以爱抚我利益。所以在我看来,终有一天HTTPS会完成全网普及。

  HTTP全名超文本传输协议,客户端据此获取服务器上的超文本内容。超文本内容则以HTML为主,客户端获得HTML内容后可根据标准开展辨析显示。因而,HTTP首要担负的是“内容的呼吁和获取”。难题就出在这一部分。行监控、劫持、阻挡等行为很不难造成网站泄密,一些首要参数比如登录密码开发者会在客户端进行MD5加密,不过网络所承载的机密音信远不只是密码,搜索内容相同属中国“氢弹之父”感音信。现近来,百度、谷歌(谷歌(Google))、Github等网站已经全站启用https,https似乎给网站上了一个“锁”,HTTPS做的就是给请求加密,让其对用户更加安全。对于自身而言除了保险用户利益外,还可防止本属于自己的流量被威胁,以保护自家利益。所以在我看来,终有一天HTTPS会落到实处全网普及。

三、生成密钥

  安装到位Openssl后运行OpenSSL\bin下的openssl.exe文件举行下列命令(管理员身份):

  上面进入正题。

  上边进入正题。

1.创造私钥

  genrsa -des3 -out *.key 1024     

  表明:此教程适合已经部署好WNMP环境,并安顿Virtualhost已毕多站点的同学。借使您没有布署,请参考我事先的稿子举办安排。

  表明:此教程适合已经安排好WNMP环境,并陈设Virtualhost落成多站点的同学。如若您没有安顿,请参见我事先的稿子展开配置。

2. 创建csr证书

  req -new -key *.key -out *.csr   (key文件为刚刚转变的文书)

  完成Https首先需求向管理机构申请证书,而我辈此次由于是锻练目标,所以通过Openssl自己生成证书。首先大家需求用到生成证书的Openssl软件。

  完成Https首先需求向管理机构申请证书,而我辈此次由于是训练目标,所以经过Openssl自己生成证书。首先大家须要用到生成证书的Openssl软件。

3.去除密码

    在加载SSL帮忙的Nginx并运用上述私钥时除了必须的口令,否则会在启动nginx的时候要求输入密码。复制lee.key相提并论命名为lee.key.org

  rsa -in *.key.org -out *.key

步骤:

步骤:

4. 生成crt证书

       x509 -req -days 365 -in *.csr -signkey *.key -out *.crt

     
 *是您自己起的公文名 那里统一使用gf,会唤醒设个密码,前边会用到那些密码。第四个文件需求提供部分参数
国家、省市、集团域名等。

        执行以上步骤,总共会生成八个公文。

澳门葡京备用网址 11

1. 安装Openssl

1. 安装Openssl

5.拷贝密钥证书到nginx

    nginx下新建文件夹ssl,拷贝gf.crt gf.key到ssl下

  下载地址: (依据系统接纳32位依然64位版本下载安装)。

  下载地址: (依据系统挑选32位仍旧64位版本下载安装)。

四、配置nginx.conf文件

找到nginx-1.13.5/conf下的nginx.conf文件编写:

把HTTPS server注释部分释放出来

#HTTPS server

    server {

        listen      443 ssl;

        server_name  localhost;

        ssl     on;

        ssl_certificate     
D:/gfxiang/work/env/nginx-1.13.5/ssl/gf.crt;

        ssl_certificate_key 
D:/gfxiang/work/env/nginx-1.13.5/ssl/gf.key;

        ssl_session_cache    shared:SSL:1m;

        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;

        ssl_prefer_server_ciphers  on;

        location / {

           proxy_pass ;

        }

    }

  下载已毕后,进行安装,我设置在了 C:\wnmp\OpenSSL-Win64文书夹中。

  下载完毕后,进行设置,我设置在了 C:\wnmp\OpenSSL-Win64文件夹中。

2. 安装ActivePerl
(此软件目标为通晓析pl文件,部分系统不设置也足以已毕本学科的效率,安装该软件目标为了求学perl)。

2. 安装ActivePerl
(此软件目的为精通析pl文件,部分系统不设置也落到实处本学科的功效,安装该软件目标为了求学perl)。

  下载地址:http://www.activestate.com/activeperl/downloads/  (依据系统挑选win32要么win64版本下载安装)。

  下载地址:http://www.activestate.com/activeperl/downloads/  (根据系统挑选win32或者win64版本下载安装)。

3. 计划环境变量

3. 配置环境变量

  在环境变量中添加环境变量

  在环境变量中添加环境变量

    变量名: OPENSSL_HOME          
 变量值:C:\wnmp\OpenSSL-Win64\bin;      
 (变量值为openssl安装地方)

    变量名: OPENSSL_HOME          
 变量值:C:\wnmp\OpenSSL-Win64\bin;      
 (变量值为openssl安装地点)

    在path变量结尾添加如下 :
%OPENSSL_HOME%;

    在path变量结尾添加如下 :
%OPENSSL_HOME%;

  1. 转变证书   
  1. 变动证书   

  (1) 首先在 nginx设置目录中成立ssl文件夹用于存放证书。比如自己的文件目录为 C:\wnmp\nginx\ssl

  (1) 首先在 nginx设置目录中创设ssl文件夹用于存放证书。比如自己的文件目录为 C:\wnmp\nginx\ssl

     以管理员身份进入命令行情势,进入ssl文件夹。
命令为: cd
 c:/wnmp/nginx/ssl

     以管理员身份进入命令行方式,进入ssl文件夹。
命令为: cd
 c:/wnmp/nginx/ssl

  (2) 创造私钥

  (2) 成立私钥

     在命令行中执行命令: openssl genrsa -des3 -out lee.key 1024    (lee文件名能够自定义),如下图所示:

     在命令行中执行命令: openssl genrsa -des3 -out lee.key 1024    (lee文件名可以自定义),如下图所示:

      澳门葡京备用网址 12

      澳门葡京备用网址 13

      输入密码后,再度重新输入确认密码。记住此密码,后边会用到。

      输入密码后,再度重复输入确认密码。记住此密码,前面会用到。

  (3)创建csr证书

  (3)创建csr证书

     在命令行中执行命令:  openssl req -new -key lee.key -out
lee.csr
 
 (key文件为刚刚转变的文书,lee为自定义文件名)

     在指令行中执行命令:  openssl req -new -key lee.key -out
lee.csr
 
 (key文件为刚刚变化的文件,lee为自定义文件名)

      澳门葡京备用网址 14

      澳门葡京备用网址 15

       如上图所示,执行上述命令后,要求输入信息。输入的新闻中最关键的为 Common
Name,那里输入的域名即为大家要选择https访问的域名。

       如上图所示,执行上述命令后,需求输入音讯。输入的新闻中最根本的为 Common
Name,这里输入的域名即为大家要使用https访问的域名。

     
 以上步骤完毕后,ssl文件夹内出现三个文本:澳门葡京备用网址 16

     
 以上步骤完结后,ssl文件夹内冒出七个文本:澳门葡京备用网址 17

  (4)去除密码。

  (4)去除密码。

     在加载SSL支持的Nginx并拔取上述私钥时除了必须的口令,否则会在启动nginx的时候需求输入密码。

     在加载SSL援救的Nginx并使用上述私钥时除了必须的口令,否则会在起步nginx的时候须要输入密码。

     复制lee.key不偏不倚命名为lee.key.org 

     复制lee.key不分互相命名为lee.key.org 

     可以采纳此命令行,也足以使用鼠标操作
    copy lee.key
lee.key.org

     可以利用此命令行,也得以利用鼠标操作
    copy lee.key
lee.key.org

     去除口令,在命令行中执行此命令:  openssl rsa -in lee.key.org -out lee.key
 
(lee为自定义文件名)

     去除口令,在指令行中执行此命令:  openssl rsa -in lee.key.org -out lee.key
 
(lee为自定义文件名)

     如下图所示,此命令需要输入刚才设置的密码。

     如下图所示,此命令要求输入刚才设置的密码。

      澳门葡京备用网址 18

      澳门葡京备用网址 19

   (5)生成crt证书

   (5)生成crt证书

     在指令行中执行此命令: openssl x509 -req -days 365 -in lee.csr -signkey
lee.key -out lee.crt  
(lee为自定义文件名)

     在命令行中执行此命令: openssl x509 -req -days 365 -in lee.csr -signkey
lee.key -out lee.crt  
(lee为自定义文件名)

      澳门葡京备用网址 20

      澳门葡京备用网址 21

      证书生成完结,ssl文件夹中总结生成如下4个文件,我们必要使用到的是lee.crt和lee.key。

      证书生成已毕,ssl文件夹中统计生成如下4个文本,大家要求选择到的是lee.crt和lee.key。

      澳门葡京备用网址 22

      澳门葡京备用网址 23

5. 修改nginx.conf文件

5. 修改nginx.conf文件

    nginx.conf文件位于:C:\wnmp\nginx\conf

    nginx.conf文件位于:C:\wnmp\nginx\conf

    找到该公文中如下代码的职责进行修改:

    找到该公文中如下代码的职位进行改动:

# HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
# HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

     修改为:

     修改为:

# HTTPS server
    #
#modify by lee 20160907 for https -s 
    server {
        listen       443 ssl;
        server_name    www.lee.com;

        ssl_certificate      C:/wnmp/nginx/ssl/lee.crt;
        ssl_certificate_key  C:/wnmp/nginx/ssl/lee.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   C:/wnmp/lee;
            index  index.html index.htm index.php;
        }

               root           C:/wnmp/lee;
               fastcgi_pass   127.0.0.1:9001;
               fastcgi_index  index.php;
               fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
               include        fastcgi_params;
        }
    }
#modify by lee 20160907 for https -s 
# HTTPS server
    #
#modify by lee 20160907 for https -s 
    server {
        listen       443 ssl;
        server_name    www.lee.com;

        ssl_certificate      C:/wnmp/nginx/ssl/lee.crt;
        ssl_certificate_key  C:/wnmp/nginx/ssl/lee.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   C:/wnmp/lee;
            index  index.html index.htm index.php;
        }

               root           C:/wnmp/lee;
               fastcgi_pass   127.0.0.1:9001;
               fastcgi_index  index.php;
               fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
               include        fastcgi_params;
        }
    }
#modify by lee 20160907 for https -s 

     重启nginx。

     重启nginx。

     在浏览器中,访问

Name输入的域名)

     在浏览器中,访问

Name输入的域名)

     (执行此步骤时,须要布置好Virtual
Host,并且在www.lee.com开放目录中添加了index.php默许入口访问文件。)

     (执行此步骤时,须求配备好Virtual
Host,并且在www.lee.com开放目录中添加了index.php默认入口访问文件。)

      澳门葡京备用网址 24

      澳门葡京备用网址 25

     上边的https被紫色划线是因为大家选取的是温馨生成的证书,此证书不受浏览器信任,如果想使其改为黑色,则需求向证书管理机构进行申请。

     上边的https被黑色划线是因为大家应用的是团结生成的证件,此证书不受浏览器信任,如若想使其改为紫色,则须求向证书管理机构举行申请。

  1. 添加重定向,自动跳转使用https。
  1. 添加重定向,自动跳转使用https。

     在nginx.conf中virtual
host中如下代码地点添加一行代码:

     在nginx.conf中virtual
host中如下代码地方添加一行代码:

    listen       80;                    
    server_name   www.lee.com;                    
#modify by lee 20160907 for https Redirect -s                        
    rewrite ^(.*) https://$server_name$1 permanent;                    
#modify by lee 20160907 for https Redirect -e                        
    listen       80;                    
    server_name   www.lee.com;                    
#modify by lee 20160907 for https Redirect -s                        
    rewrite ^(.*) https://$server_name$1 permanent;                    
#modify by lee 20160907 for https Redirect -e                        

     重启nginx。

     重启nginx。

     访问www.lee.com,会发觉浏览器自动跳转到

     访问www.lee.com,会发觉浏览器自动跳转到

  至此,https访问安插成功达成。

  至此,https访问安插成功做到。

  如有不明之处,欢迎留言,如有错误敬请指正。

  如有不明之处,欢迎留言,如有错误敬请指正。

 

 

  参考: 

  参考: 

 

 

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website