设为首页 收藏本站
查看: 864|回复: 0

[经验分享] RedHat 学习笔记 基于ssl的httpd服务配置 (openssl创建CA)

[复制链接]

尚未签到

发表于 2018-5-11 10:40:43 | 显示全部楼层 |阅读模式
  这篇文章大概分为三个部分来讲,包括各种加密算法,openssl的初级使用等
  

  第一部:简单介绍HTTPS,如何实现身份认证+数据加密
  

        SSL(Secure Socket Layer) 负责Web网站和客户端浏览器之间的通信安全。
          与HTTP的URL由“http://”开头且使用80port不同,HTTPS的URL由“https://"开头且默认port为443.
          SSL在HTTP应用协议之下作为一个独立的协议层运行。

          SSL利用加密来防止窃听,篡改和假冒消息。

  

     这里先补充一点几个简单的加密算法说明

  对称加密算法(symmetric algorithm):特点是加密密钥能够从解密密钥推算出来,加解密速度快

          DES(data encryptiion standard),IBM研制,加密解密用的是同一个密钥

          3DES(triple DES),DES的advanced版本

          AES,支持128,256,512等不通位数

          linux的工具:openssl enc; gpg

  

      公钥加密算法加密解密使用不同的密钥,加密密钥(public key)可公开,解密密钥(private key)需保密

          RSA

          DSA

          linux的工具:openssl; gpg

  

  单向加密算法:信息摘要函数

          MD5(message-digest algoritm 5), 提取数据的特征码,特定为不可逆性,雪崩效应等

          SHA1(secure hash algorithm 1),类似MD5,默认长度为160

  

      接着模拟一下客户端和服务器实现身份认证和数据加密
          client: 利用MD5提取原始数据的特征码--->利用自己的私钥加密这段特征码-->与server协商生成一对对称密钥-->用对称密钥加密整个数据-->发给server
          client:获得server公钥(public key)-->用这把public key加密自己生成的对称密钥-->发个server

          server:使用自己的private key解密获得client生成的对称密钥-->用这个对称密钥解密整个数据-->用client的公钥解密这段特征码-->从新计算数据的特征码并比较

  

      这里就有个问题了,client怎么才能获得正确server的public key,这个时候就需要有一个具有公信力的中间机构--认证中心(Certificate Authority,CA)。

  

  

  第二部分:通过openssl这个软件来模拟一个CA然后给自己的Web服务器发放证书。
  1.下载openssl

          我用我10.16.121.124的主机充当CA
DSC0000.jpg

  2.在CA主机上生成一个私钥

              切换到/etc/pki/CA 目录中

      DSC0001.jpg
      这里粗略介绍一下openssl的几个简单用法

              openssl command [ command_opts ] [ command_args ]
                  Creation of RSA, DH, and DSA key parameters (创建以这几个算法的公开密钥)

              例如: openssl genrsa 2046 (以RSA算法生成长度为2046位的公开密钥的私钥)

              在上面的例子中我们将生成的私钥放在 /etc/pki/CA/private/中,以cakey.pem命名,且权限为600   

  

  3.  124主机要充当CA还需要一个自签证书,还要用到我们的openssl

      DSC0002.jpg
                   req:

                  -new: this option generates a new certificate request.

                  -x509: this is uesd to generate a test certificate or a self signed root CA

                  -key private/cakey.pem: 以哪个私钥来生成自签证书

                  -out cacert.pem: 证书保存的位置

                  然后按要求就填入证书的各种信息

                  Country Name(国家):

                  State or Province Name(省份):

                  Locality Name(城市):

                  Organization Name(公司):

                  Organizational Unit Name(部门):

                  Comom Name(因为这是自签证书,所以要求不高可以填入你服务器的hostname)
                  Email Address(管理员的邮箱):   

  

  4.编辑CA配置文件(/etc/pki/tls/openssl.cnf),作用为指定你CA内文件存放的位置

  
      DSC0003.jpg
DSC0004.jpg

  

  5.创建CA生成证书的相关目录与文件

      DSC0005.jpg
  

  6.切换到我们Web服务器10.16.121.120上面,申请一个私钥存放在/etc/httpd/ssl/目录下,命名为webprivate.key   

      DSC0006.jpg
  

  

      7.用10.16.121.120Web服务器向CA请求获得证书。先在本机上生成一个申请证书

      DSC0007.jpg
          这个步骤是在Web服务器上执行的,类似步骤3不过这里要注意的是下面有一项是Comman Name,要填入自己Web服务器的FQDN,且请求证书文件名为web.csr   ----csr(Certificate Signature Request)

  

      8 把10.16.121.120Web服务器生成的申请证书web.csr传给10.16.121.124 CA服务器

      DSC0008.jpg
           利用scp(secure copy)命令可以进行远程copy文件

  

      9.在CA服务器上给Web服务器颁发证书

      DSC0009.jpg
  在CA服务器上就成功给Web签署了证书,文件为web.crt

     

      10.还要把web.crt传回给Web服务器

          至于在Web服务上的配置我放在Web的博客上再细说

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-458540-1-1.html 上篇帖子: nagios系列-----Redhat5.4下安装EPEL 下篇帖子: RedHat Linux 5.5 x86_64系统Bind服务器(DNS)架设过程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表