美文网首页
2- Windows下生成自签名证书并配置Nginx

2- Windows下生成自签名证书并配置Nginx

作者: 熙熙爸爸 | 来源:发表于2017-08-17 16:44 被阅读0次

    如果是在开发中使用Https,买一个正式的证书有些不太划算,所以需要自己生成一个自签名的证书来完成测试工作。
    下面说明一下如何在Window上生成一个自签名的证书。

    1. 安装openssl工具
    • 首先下载windows版的openssl,根据自己系统选择不同的版本,我下载的是
      Win64 OpenSSL v1.0.2L
      下载页面
    • 下载完之后按照步骤进行安装就可以
    2. 打开openssl.exe

    安装完成之后找到openssl的安装目录,打开bin下面的openssl.exe,接下来的操作都在这个命令窗口中执行

    3. 生成证书
    • 使用openssl生成一对公钥和私钥
      genrsa -des3 -out server.key 2048
    命令 说明
    genrsa 生成rsa秘钥对
    -des3 参数,使用des3对称加密算法,加密公钥和私钥
    -out server.key 2048 输出公钥和私钥对到同级目录下的server.key文件,私钥的长度为2048位
    生成秘钥对

    需要输入密码,随便输入,后面生成证书的时候会需要。

    • 生成证书申请文件
      req -new -key server.key -out server.csr
    命令 说明
    req 创建证书申请文件命令
    -new 参数,新建一个申请
    -key server.key 使用server.key作为证书的秘钥对
    -out server.csr 把申请文件输出到server.csr文件中
    创建证书申请文件
    • 删除秘钥对中的密码
      而这个密码会带来一个副作用,那就是在每次Nginx启动Web服务器时,都会要求输入密码,这显然非常不方便,所以为们删除这个密码
      rsa -in server.key -out server_no_passwd.key
      删除密码
    • 生成证书

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

    命令 说明
    x509 对证书签名命令
    -req 表示输入文件为csr文件
    -days 365 证书的有效期为365天
    -signkey server_no_passwd.key 使用这个秘钥对进行签名
    -out server.crt 把这个证书生成到server.crt文件中

    得到的证书就是一个可以使用的ssl证书了

    4. 配置证书到Nginx
    • 下载nginx for windows
      下载nginx
      解压之后得到这样的目录结构
    nginx目录结构
    • 修改nginx的配置文件
      首先把上面生成的几个证书,拷贝到conf文件夹下
      打开nginx.conf文件进行修改
    server {
            listen       443;
            #填写和证书上一直的域名
            server_name  www.test.com;
            ssl on;
            ssl_certificate server.crt;
            ssl_certificate_key server_no_passwd.key;
            ssl_session_timeout 5m;
            ssl_prefer_server_ciphers on;
            location / {
                root   html;
                index  index.html index.htm;
            }
        }
    
    • 修改完成之后,启动nginx。
    • 为了能使www.test.com能跳转到本机,需要修改hosts文件
    hosts文件路径

    添加一条记录

    添加一条记录 访问https

    点击继续前往

    继续前往

    现在https证书就已经配置完成。
    上面提示不安全的原因是因为,我们使用的证书,浏览器无法验证证书的安全性,只有使用购买的证书才能避免这种现象

    下面是用一个正式的证书演示一下

    server {
            listen       443;
            server_name  www.shangshanci.cn;
    
            ssl on;
            ssl_certificate 1_shangshanci.cn_bundle.crt;
            ssl_certificate_key 2_shangshanci.cn.key;
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
            ssl_prefer_server_ciphers on;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
        }
    
    配置域名 访问

    相关文章

      网友评论

          本文标题:2- Windows下生成自签名证书并配置Nginx

          本文链接:https://www.haomeiwen.com/subject/kjevrxtx.html