一、需求分析

我们公司测试环境,域名更换,原来的*.dev.devbao.cn   变为   *.dev.vdai.cn  ,此处的*表示多个二级域名,导致原来为dev.devbao.cn制作的ssl证书无法使用,需要重新生成。想着是内网服务器,仅供内部测试环境用,所以决定自己制作一个泛解析的ssl证书足矣

此处环境:两台服务器,系统:centos7

CA服务器:192.168.1.75   对应的主机名:tianfen.devdai.cn

nginx服务器:192.168.1.10      多个站点:  *.dev.vdai.cn

二、准备证书

一)在CA服务器上操作

0. 前期准备工作

  1. cd ~/
  2. mkdir ssl
  3. cd ssl
  4. mkdir demoCA
  5. cd demoCA
  6. mkdir newcerts
  7. mkdir private
  8. touch index.txt
  9. echo '01' > serial

1. 制件 CA 证书

生成 CA 私钥: ca.key

  1. openssl genrsa -des3 -out ca.key 2048

这样是生成 rsa 私钥,`des3` 算法,openssl 格式,2048 位强度。`ca.key` 是密钥文件名。为了生成这样的密钥,需要一个至少四位的密码。另外可以通过以下方法生成没有密码的key:

  1. openssl rsa -in ca.key -out ca_decrypted.key

生成 CA 根证书的公钥 ca.crt:

  1. openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

二)在nginx服务器 --------- 制作网站的 https 证书,并用 CA 签名认证

记住:我们是需要为   *.dev.vdai.cn 颁发ssl证书

先生成  的证书私钥 host.pem

  1. openssl genrsa -des3 -out host.pem 1024

无密码的私钥

  1. openssl rsa -in host.pem -out host.key

生成 csr 签名请求

  1. openssl req -new -key host.pem -out host.csr

这里需要输入国家,地区,组织,email等。最重要的是 **common name**,可以写你的名字或者域名。如果为了 https 申请,这个必须和域名一样,比如是test.dev.vdai.cn的话,这里要写 test.dev.vdai.cn,否则会引发浏览器警报,这里可以写为  *.dev.vdai.cn 来做泛域名证书。切记:不能写成*.vdai.cn

到此为止,nginx客户端的证书请求,已经制作好了,把host.csr拷贝到CA服务器

scp  host.csr  192.168.1.75:/root/ssl/demoCA/

最后,切换到CA服务器, CA 证书进行签名

  1. openssl ca -policy policy_anything -days 1460 -cert ca.crt -keyfile ca.key -in host.csr -out host.crt

这样网站的 https 证书就做完了。

还有一步就是把 ca.crt 的内容追加到 host.crt 后面,因为有些浏览似乎不支持。

  1. cat ca.crt >> host.crt

证书签署完成以后:

1.拷贝host.crt到nginx服务器

nginx 配置

加入配置内容:

例如:test.dev.vdai.cn

  1. server {
  2. listen 443;
  3. server_name test.dev.vdai.cn;
  4.  
  5. root html;
  6. index index.html index.htm;
  7.  
  8. ssl on;
  9. ssl_certificate /PATH/TO/host.crt; ---写host.crt对应的路径
  10. ssl_certificate_key /PATH/TO/host.key; ---写host.key对应的路径
  1. ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; location / { try_files $uri $uri/ =404; } }

    2.ca.crt证书导入到浏览器,(选择受信任的根证书颁发机构)
    3.测试效果
  1.  

nginx使用openssl的证书-泛解析的更多相关文章

  1. nginx 域名泛解析

    部分应用场景下要求服务器根据客户输入的二级域名地址自动访问不同的页面,比如一个服务器放置了不同的业务,商城.官网等多个业务,又不想一个个配置server, 网站目录结构入戏: html 网站根目录 m ...

  2. [Linux.NET]Nginx 泛解析配置请求映射到多端口实现二级域名访问

    由于想实现一个域名放置多个应用运行的目的,而不想通过域名后加端口号方式处理,这种方式处理记起来太麻烦,偷懒党简直不能忍,故而考虑了使用二级域名来处理多个应用同时运行.Google了一番资料并进行了尝试 ...

  3. openssl - 数字证书的编程解析

    原文链接: http://www.cangfengzhe.com/wangluoanquan/37.html 这篇文章主要介绍PKI公钥体系中非常核心元素——数字证书的编程解析.在SSL,SET等安全 ...

  4. Nginx 泛解析配置请求映射到多端口实现二级域名访问

    由于想实现一个域名放置多个应用运行的目的,而不想通过域名后加端口号方式处理,这种方式处理记起来太麻烦,偷懒党简直不能忍,故而考虑了使用二级域名来处理多个应用同时运行.Google了一番资料并进行了尝试 ...

  5. Nginx https免费SSL证书配置指南

    生成证书 $ cd /usr/local/nginx/conf $ openssl genrsa -des3 -out server.key 1024 $ openssl req -new -key  ...

  6. Nginx实现多域名证书HTTPS

    目前公司有2个域名,其中这次涉及到3个子域名需要更改为HTTPS传输,分别为: passport.abc.com www.test.com admin.test.com 那么就涉及到购买ssl证书的问 ...

  7. CentOS6系统openssl生成证书和自签证书

    CentOS6系统openssl生成证书和自签证书的过程,记录一下,本文基于CentOS 6 64bit.$ yum install openssl openssl-devel 1,生成服务器端的私钥 ...

  8. Nginx 下配置SSL证书的方法

    1.Nginx 配置 ssl 模块 默认 Nginx 是没有 ssl 模块的,而我的 VPS 默认装的是 Nginx 0.7.63 ,顺带把 Nginx 升级到 0.7.64 并且 配置 ssl 模块 ...

  9. CentOS6.5 下在Nginx中添加SSL证书以支持HTTPS协议访问

    参考文献: 1. NginxV1.8.0安装与配置 2. CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问 3. nginx配置ssl证书的方法 4.nginx强制使用https访问 ...

随机推荐

  1. 工作经常使用的SQL整理

    工作经常使用的SQL整理,实战篇(二)   工作经常使用的SQL整理,实战篇,地址一览: 工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇(二) 工作经常使用的SQL整理,实战 ...

  2. SZU:A25 Favorite Number

    Judge Info Memory Limit: 32768KB Case Time Limit: 10000MS Time Limit: 10000MS Judger: Number Only Ju ...

  3. .net实现依赖注入

    .net实现依赖注入 1. 问题的提出 开发中,尤其是大型项目的开发中,为了降低模块间.类间的耦合关系,比较提倡基于接口开发,但在实现中也必须面临最终是“谁”提供实体类的问题.Martin Fowle ...

  4. 运动检测(前景检测)之(一)ViBe

    运动检测(前景检测)之(一)ViBe zouxy09@qq.com http://blog.csdn.net/zouxy09 因为监控发展的需求,目前前景检测的研究还是很多的,也出现了很多新的方法和思 ...

  5. HDU1423:Greatest Common Increasing Subsequence(LICS)

    Problem Description This is a problem from ZOJ 2432.To make it easyer,you just need output the lengt ...

  6. struts2 action 接受数组参数为Null的问题

    public List<FormulaDetail> formulaDetails; public List<FormulaDetail> getFormulaDetails( ...

  7. 安装Win8

    老毛桃安装Win8(哪里不会点哪里,so easy) 先来一张美女图,是不是很漂亮呢!继续往下看! 求推荐啊! 对于一个干IT的码农来说,会写代码不算什么,会装系统不算什么,及会写代码也会装系统的那才 ...

  8. rsync 文件校验及同步原理

    rsync 文件校验及同步原理 参考:http://rsync.samba.org/how-rsync-works.html 我们关注的是其发送与接收校验文件的算法,这里附上原文和我老婆(^_^)的翻 ...

  9. hive 不同用户 权限设置 出错处理

    今天安装了hive 在a账号安装的,一切正常 但是到其他账户下,报错 >show tables; Error in metadata: java.lang.RuntimeException: U ...

  10. Haskell 笔记(四)函数系统

    函数系统 函数式编程当然少不了函数系统啦,在教程最初的时候就有一个最简单的函数,函数系统贯穿在Haskell全部,Haskell的函数有几个重要的性质. 首先声明一下函数的参数和返回值类型 然后有一个 ...