1. mkdir /etc/ssl/xip.io
  2. [root@ha02 haproxy-1.4.]# openssl genrsa -out /etc/ssl/xip.io/xip.io.key
  3. Generating RSA private key, bit long modulus
  4. ........++++++
  5. ...........++++++
  6. e is (0x10001)
  7. [root@ha02 haproxy-1.4.]# openssl req -new -key /etc/ssl/xip.io/xip.io.key -out /etc/ssl/xip.io/xip.io.csr
  8. You are about to be asked to enter information that will be incorporated
  9. into your certificate request.
  10. What you are about to enter is what is called a Distinguished Name or a DN.
  11. There are quite a few fields but you can leave some blank
  12. For some fields there will be a default value,
  13. If you enter '.', the field will be left blank.
  14. -----
  15. Country Name ( letter code) [XX]:CN #国家代码
  16. State or Province Name (full name) []:china #省
  17. Locality Name (eg, city) [Default City]:beijing #市
  18. Organization Name (eg, company) [Default Company Ltd]:iseastar #公司名称
  19. Organizational Unit Name (eg, section) []:iseastar #可以不写
  20. Common Name (eg, your name or your server's hostname) []:iseastar #可以不写
  21. Email Address []: #邮箱地址
  22.  
  23. Please enter the following 'extra' attributes
  24. to be sent with your certificate request
  25. A challenge password []:
  26. An optional company name []:
  1. [root@ha02 haproxy-1.4.]# openssl x509 -req -days -in /etc/ssl/xip.io/xip.io.csr -signkey /etc/ssl/xip.io/xip.io.key -out /etc/ssl/xip.io/xip.io.crt
  2. Signature ok
  3. subject=/C=CN/ST=china/L=beijing/O=iseastar/OU=iseastar/CN=iseastar
  4. Getting Private key

这样就生成了下面的三个文件:

  1. [root@ha02 haproxy-1.4.]# tree /etc/ssl/xip.io/
  2. /etc/ssl/xip.io/
  3. ├── xip.io.crt
  4. ├── xip.io.csr
  5. └── xip.io.key
  6.  
  7. directories, files

在创建了证书之后,我们需要创建pem文件。pem文件本质上只是将证书 密钥及证书中心证书(可有可无)拼接成一个文件。在我们在这里只是简单地将证书及密钥文以这个顺序拼接在起来创建xip.io.pen文件 。这就是HAProxy读取SSL证书首选的方式。

  1. [root@ha02 haproxy-1.4.]# cat /etc/ssl/xip.io/xip.io.crt /etc/ssl/xip.io/xip.io.key |tree /etc/ssl/xip.io/xip.io.pem
  2. /etc/ssl/xip.io/xip.io.pem [error opening dir]
  3.  
  4. directories, files
  5. [root@ha02 haproxy-1.4.]# ls /etc/ssl/xip.io/
  6. xip.io.crt xip.io.csr xip.io.key
  7. 有报错,并没有生成.pem结尾的文件

后来细心看一下一个命命看错了应该是tee而不是tree

  1. [root@ha02 haproxy-1.4.]# cat /etc/ssl/xip.io/xip.io.crt /etc/ssl/xip.io/xip.io.key |tee /etc/ssl/xip.io/xip.io.pem
  2. -----BEGIN CERTIFICATE-----
  3. MIICRzCCAbACCQCp15MeAY6YFzANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJD
  4. TjEOMAwGA1UECAwFY2hpbmExEDAOBgNVBAcMB2JlaWppbmcxETAPBgNVBAoMCGlz
  5. ZWFzdGFyMREwDwYDVQQLDAhpc2Vhc3RhcjERMA8GA1UEAwwIaXNlYXN0YXIwHhcN
  6. MTYxMjE2MDUxMzM5WhcNMTcxMjE2MDUxMzM5WjBoMQswCQYDVQQGEwJDTjEOMAwG
  7. A1UECAwFY2hpbmExEDAOBgNVBAcMB2JlaWppbmcxETAPBgNVBAoMCGlzZWFzdGFy
  8. MREwDwYDVQQLDAhpc2Vhc3RhcjERMA8GA1UEAwwIaXNlYXN0YXIwgZ8wDQYJKoZI
  9. hvcNAQEBBQADgY0AMIGJAoGBANEKpgCx8Hd0J2gZd/YJRpqjac0nZNU29pyOpXbl
  10. VxOy9tUR4bHX6y7IDW/G297orwc2AIGetNVSYEVKTh6pCZz6H/E+FZG7+A2ftJ8I
  11. 823Hx7iW10Q1sP95UsYB2N0wd5AtKfywuv3Bjwe2nQj3R47+LuwABNnXS0mYp93y
  12. 4EkxAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEABd+XL1YdowVUWivoxki751bAdqpv
  13. L9WizV1LW0Whf4GWS10wnubXSOHqR3Ybcm9Nnq1adqoV1g8pcJMWGYk+JKjA+N+i
  14. tiiBSwvKw7kEC3/r2EH0vmVtv4TLcohTJrIil2WslPYcHVcWJX/HdgBD5yhSNp4D
  15. INwzh2GWxZ2HAE8=
  16. -----END CERTIFICATE-----
  17. -----BEGIN RSA PRIVATE KEY-----
  18. MIICXAIBAAKBgQDRCqYAsfB3dCdoGXf2CUaao2nNJ2TVNvacjqV25VcTsvbVEeGx
  19. +suyA1vxtve6K8HNgCBnrTVUmBFSk4eqQmc+h/xPhWRu/gNn7SfCPNtx8e4ltdE
  20. NbD/eVLGAdjdMHeQLSn8sLr9wY8Htp0I90eO/i7sAATZ10tJmKfd8uBJMQIDAQAB
  21. AoGAc8J10wS2qS/FcrxH1hOk6ZV8zYL3L6tUPbYwovq1kc8VKUDRvu5W6n0WE8QH
  22. lhU8d73L4fvFICyR600OnaP2EdtslR0BLwR0r55PMGxm6hpE5KI8N3nrxRQSkbPs
  23. u8o9rS9IaWXjKk5gYcrTQTfGuaez4TzsUtQr/oVJfviZ25ECQQDxq/ZpTzbr6TFH
  24. V+iLFI3dwz6wH72DTFPo5FrZ+s7VTuuYi8mb1LDxXFxWKCgaD1vAZf8hFddXthjA
  25. 20Kk7+DXAkEA3W9u7VWa6C85NbGQ6VH6AVSk9uDgzWafxWw0in3tdsV/VEZxu3PF
  26. iXFHVHUhy4dc7UZksl7GACtkPiMV6iJ9NwJBAJpNZYNPpI1z0pbutfc3JG1XYAsr
  27. +OCAN4MXajqLPMxNG3fGqO7qGh/BDOOluBULgVWSyhbhzyCdj6hzVlXhIvkCQF2k
  28. mVGO6TKVfekiDXlOLJ7Rb+3jjc3vP1Pa/aEvvfODc+Rs4f326KvGFvc1jbQnq3nA
  29. UidIgw1hTEQmzEa2jSMCQGDoM8ginUV7o33WcKLog5arhYFVOXuZi478GAhtauX9
  30. Dcv8CRWpfdi3LuOM8yCRWDEyPfBw+3CfIBlXjVBkD7w=
  31. -----END RSA PRIVATE KEY-----
  32. [root@ha02 haproxy-1.4.]# tree /etc/ss
  33. ssh/ ssl/
  34. [root@ha02 haproxy-1.4.]# tree /etc/ssl/xip.io/
  35. /etc/ssl/xip.io/
  36. ├── xip.io.crt
  37. ├── xip.io.csr
  38. ├── xip.io.key
  39. └── xip.io.pem
  40.  
  41. directories, files

当购买真正的证书时,你不一定会获取并接后的文件。可能需要自己拼接生成,但也有机构提供拼接好的文件 给你。但可能不是pem文件,而是dundel ,cert, cert, key文件或一些相同概念但名称类似的文件。

pem文件是HAProxy只需简单配置就可以处理SSLL连接了。

要在HAProxy使用SSL连接 ,我们现在就可以添加校准SSL端口443的绑定,并让HAProxy知道SSL证书的位置 :

  1. stats admin if TRUE | stats admin if TRUE
  2. mode http | mode http
  3. #server sshd 192.168.1.104: check port inter | #server sshd 192.168.1.104: check port inter
  4. |
  5. frontend app01_www.app01.com: | frontend app01_www.app01.com:
  6. bind *: | bind *:
  7. bind *: ssl crt /etc/ssl/xip.io/xip.io.pem | ---------------------------------------------------------
  8. timeout client 8h | timeout client 8h
  9. mode http | mode http
  10. default_backend server_app01 | default_backend server_app01
  11. backend server_app01 | backend server_app01
  12. mode http | mode http
  13. timeout server 8h | timeout server 8h
  14. cookie SERVERID insert nocache | cookie SERVERID insert nocache
  15. server app01 10.100.0.37: check port rise| server app01 10.100.0.37: check port ris
  16. frontend app02_www.app02.com: | frontend app02_www.app02.com:
  17. bind *: | bind *:
  18. bind *: ssl crt /etc/ssl/xip.io/xip.io.pem | ---------------------------------------------------------
  19. timeout client 8h | timeout client 8h
  20. mode http | mode http
  21. default_backend server_app02 | default_backend server_app02
  22. backend server_app02 | backend server_app02
  23. mode http | mode http
  24. timeout server 8h | timeout server 8h
  25. + +-- lines: cookie SERVERID insert nocache--------------|+ +-- lines: cookie SERVERID insert nocache-------------

看看下在的改动只是加了一行代码:

  1. bind *: ssl crt /etc/ssl/xip.io/xip.io.pem

上面的配置可以支持https也支持http

下面只支持https,看一下这三个文件的不同:

  1. + +-- lines: global--------------------------------------|+ +-- lines: global-------------------------------------
  2. mode http | mode http
  3. #server sshd 192.168.1.104: check port inter | #server sshd 192.168.1.104: check port inter
  4. |
  5. frontend app01_www.app01.com: | frontend app01_www.app01.com:
  6. bind *: | bind *:
  7. bind *: ssl crt /etc/ssl/xip.io/xip.io.pem | bind *: ssl crt /etc/ssl/xip.io/xip.io.pem
  8. redirect scheme https if !{ ssl_fc } | ---------------------------------------------------------
  9. timeout client 8h | timeout client 8h
  10. mode http | mode http
  11. default_backend server_app01 | default_backend server_app01
  12. backend server_app01 | backend server_app01
  13. mode http | mode http
  14. timeout server 8h | timeout server 8h
  15. cookie SERVERID insert nocache | cookie SERVERID insert nocache
  16. server app01 10.100.0.37: check port rise| server app01 10.100.0.37: check port ris
  17. frontend app02_www.app02.com: | frontend app02_www.app02.com:
  18. bind *: | bind *:
  19. redirect scheme https if !{ ssl_fc } | ---------------------------------------------------------
  20. bind *: ssl crt /etc/ssl/xip.io/xip.io.pem | bind *: ssl crt /etc/ssl/xip.io/xip.io.pem
  21. timeout client 8h | timeout client 8h
  22. mode http | mode http
  23. default_backend server_app02 | default_backend server_app02
  24. backend server_app02 | backend server_app02
  25. mode http | mode http
  26. + +-- lines: timeout server 8h---------------------------|+ +-- lines: timeout server 8h--------------------------

前左边的只支持https右边是支持https和http

ca 自签名证书 并实现HAProxy https功能的更多相关文章

  1. 自签名证书安全性问题研究https(ssl)

    先看下https(ssl)的好处,以及为什么要用: http://imweb.io/topic/565c71673ad940357eb99879 https://zh.wikipedia.org/wi ...

  2. 生成自签名证书-开启https

    1.生成CA证书 # 生成 CA 私钥 openssl genrsa -out ca.key 2048 # X.509 Certificate Signing Request (CSR) Manage ...

  3. CA证书、自颁发证书、自签名证书联系

    一.理论基础 ssl:secure socket layer(安全套接层协议)的缩写,通过此协议可以保证两个应用通信的可靠性和保密性.openssl:是ssl协议的实现.提供了对称加密算法.非对称加密 ...

  4. Docker registry自签名证书

    权威Registry 获取安全证书有两个办法:互联网认证的CA处获取.自建CA自己给自己签名. 1.从认证CA处获取签名证书,大多数是需要付出一定费用的,近些年也有认证CA提供免费证书,例如Let’s ...

  5. Windows Server 2008 R2 下配置TLS1.2,添加自签名证书

    前言 2017年1月1日起App Store上的所有App应用将强制开启ATS功能. 苹果的ATS(App Transport Security)对服务器硬性3点要求: ① ATS要求TLS1.2或者 ...

  6. openssl生成自签名证书

    1.生成x509格式的CA自签名证书 openssl req -new -x509 -keyout ca.key -out ca.crt 2.生成服务端的私钥(key文件)及申请证书文件csr文件 o ...

  7. mac 浏览器(chrome, safari)信任自签名证书

    mac 浏览器(chrome, safari)信任自签名证书 自签名证书创建了一个 https 服务器,但是浏览器访问的时候总是不信任证书,感觉很烦,就想如果信任这个证书就不会有问题了. 方法1: 直 ...

  8. Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇

    Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.试验架构说明 node101 ...

  9. Nginx 高级配置-https 功能

    Nginx 高级配置-https 功能 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HTTPS工作过程 1>.SSL/TLS SSL(Secure Socket Lay ...

随机推荐

  1. ES6新特性:使用export和import实现模块化

    在ES6前, 前端就使用RequireJS或者seaJS实现模块化, requireJS是基于AMD规范的模块化库,  而像seaJS是基于CMD规范的模块化库,  两者都是为了为了推广前端模块化的工 ...

  2. Couchbase的安装步骤

    本指南将在几分钟内让你上手,探索关联APP,在命令行shell 中删除一些实例查询,并尝试查询工作台. 下载Couchbase Server 下载地址:http://www.couchbase.com ...

  3. 文件操作之FileOpenPicker、FileSavePicker和FolderPicker

    Win10的开发经常需要进行文件的操作,因此文件的选择对话框FileOpenPicker.文件保存对话框FileSavePicker以及文件夹选择对话框FolderPicker十分重要.这三者的操作也 ...

  4. layer弹窗监控键盘事件

    在开发中我们常常遇到客服各种其他问题,现在客服需要键盘按下关闭当前窗口事件和鼠标点击确定按钮事件一样. 我们需要在layer中编写一个监控事件.具体代码如下 layer.confirm('is not ...

  5. C++链表

    之前用C写链表的时候,结点使用结构体封装的,操作起来总是感觉很麻烦.C++中使用类来封装结点,感觉操作起来方便多了,内存回收也感觉很清楚. 最近,做Gps数据分析时,别人要求加一个树形控件. Gps数 ...

  6. VOC2007检测任务的评估标准

    VOC2007数据集使用mAP值作为检测算法检测结果的性能评估得分.mAP意思是mean Average Precision,Precision是指精度,Average Precision是指11个等 ...

  7. 【poj1737】 Connected Graph

    http://poj.org/problem?id=1737 (题目链接) 题意 求n个节点的无向连通图的方案数,不取模w(゚Д゚)w Solution 刚开始想了个第二类斯特林数,然而并不知道怎么求 ...

  8. Logstash-5.0同步.json文件到ElasticSearch-5.0配置文件

    logstash/conf/input-file.conf内容如下: input { file { #监听文件的路径. path => ["E:/data_json/*.json&qu ...

  9. ecshop 后台时间调用

    <script type="text/javascript" src="../js/calendar.php?lang={$cfg_lang}">& ...

  10. vijos1250 最勇敢的机器人

    背景 Wind设计了很多机器人.但是它们都认为自己是最强的,于是,一场比赛开始了~ 描述 机器人们都想知道谁是最勇敢的,于是它们比赛搬运一些物品. 它们到了一个仓库,里面有n个物品,每个物品都有一个价 ...