zoukankan      html  css  js  c++  java
  • 为Apache搭建HTTPS

    a.首先查看是否安装OpenSSL,如果已安装跳过本阶段。通常CentOS 7 默认安装

    b.通过http://www.openssl.org/source/openssl-1.0.2j.tar.gz 下载OpenSSL,可以下载最新版本,或者使用YUM进行在线安装

    c.在文件夹下解压缩,命令:tar -xzf openssl-1.0.2j.tar.gz,得到openssl-1.0.2j文件夹

    d.进行解压的目录:cd openssl-1.0.2j 设定Openssl 安装,(--prefix)参数为欲安装之目录,也就是安装后的档案会出现在该目录下:执行命令: ./config --prefix=/usr/local/openssl

    e.执行命令./config -t

    f.执行 make install 编译Openssl

    g.安装过程中可能会出错,会提示GCC,所以需要通过yum -y install gcc 安装GCC

    OpenSSL常见用法

    a.对称加密,对称加密需要使用标准命令enc

    常用选项有:

    -in filename:指定要加密的文件存放路径

    -out filename:指定加密后的文件存放路径

    -salt:自动插入一个随机数作为文件内容加密,默认选项

    -e:可以指明一种加密算法,若不指定的话将使用默认算法加密

    -d:解密,解密时可以指定算法,若不指定则使用默认算法,但一定要与加密时的算法一致

    -a/-base64:使用base64编码格式

    示例:

    加密:openssl enc -e -des3 -a -salt -in test -out test_1

    解密:openssl enc -d -des3 -a -salt -in test_1 -out test_2

    b.单向加密

    单向加密需要使用dgest

    常用选项有:

    [-md5|-md4|....]:指定一种加密算法

    -out filename:将加密的内容保存到指定文件中

    示例:

    openssl dgst -md5 fstab

    echo "jia mi nei rong" | openssl dgst -md5

    c.生成密钥

    生成随机数需要用到标准命令 rand 

    常用选项:

    -out file:生成随机数保存至指定文件中

    -base64:使用base64 编码格式

    -hex:使用16进制编码格式

    示例:

    openssl rand -hex 10

    openssl rand -base64 10

    openssl rand -base54 10 -out aa

    d.生成密钥对

    首先使用genrsa 标准生成私钥,然后用rsa标准命令从私钥中提取公钥

    常用选项:

    -out filename:将生成私钥保存至指定的文件中

    -des |-des3|-idea:不同的加密算法

    numbits:指定生成私钥的大小,默认是2048

    一般情况密钥文件权限要控制好,只能自己读写,因此可以使用umask命令设置私钥权限

    (umask 007; openssl genrsa -out 123.txt 4096)

    Rsa用法常用选项

    -in filename :指定私钥文件

    -out filename :指定将提取出的公钥保存至指定文件中

    -pubout :根据私钥提取公钥

    openssl rsa -in 123.txt -out 123.pub -pubout

    那么现在就要开始搭建HTTPS

    (1)创建CA和申请证书

    使用openssl工具创建CA证书和申请证书时,需要先查看配置文件,因为配置文件中对证书的名称和存放位置等相关信息都做了定义,参考/etc/pki/tls/openssl.cnf文件

    (2)创建自签证书

    创建为CA提供所需的目录及文件

    cd /etc/pki/CA

    mkdir -pv {certs,crl,newcerts,private}

    touch {serial,index.txt}

    指明证书的开始编号

    echo 01 >> serial

    生成根证书私钥(私钥的文件名与存放位置要与配置文件中的设置相匹配,生成证书填写相应信息)

    openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out cacert.pem -days 365

    -new:表示生成一个新证书的签署请求

    -x509:专用于CA生成自签证书,如果不是自签证书则不需要此项

    -key:生成请求时用到的私钥文件

    -out:证书的保存路径

    -days:证书的有效期限

    (3)颁发证书

    在需要使用证书的主机上生成证书请求,以httpd服务为例,步骤如下:

    第一步:在需要使用证书的主机上生成私钥,这个私钥文件的位置可以随意定

    第二步:生成证书签署请求

    第三部:将请求通过可靠方式发送给CA主机

    (umask 077; openssl genrsa -out test.key 2048)

    openssl req -new -key test.key -out test.csr -days 365

    CA服务器拿到证书签署请求文件后颁发证书,这一步是在CA服务器上做的

    #颁发证书

    openssl req -new -x509 -key test.key -out test.crt -days 365

    安装mod_ssl

    yum install mod_ssl

    安装完成后在/etc/httpd/conf.d目录下自动生成ssl.conf,找到下面两行信息,并修改

    SSLCertificateFile /etc/pki/CA/certs/test.crt   #修改并指向自己生成的crt文件

    SSLCertificateKeyFile /etc/pki/CA/test.key     #修改指向自己生成的key文件

    保存并重启httpd服务,此时可以通过Https 和http都可以访问Apache主页。要想关闭Http访问,只需要在/etc/httpd/conf/httpd.conf配置文件加上

    SSLEngine On

    SSLCertificateFile /etc/pki/CA/certs/test.crt

    SSLCertificateKeyFile /etc/pki/CA/test.key

  • 相关阅读:
    从浏览器输入URL到页面渲染的过程
    安全分析的几个好的工具网站的使用
    从一次渗透谈到linux如何反弹shell
    python 进行抓包嗅探
    MYSQL的索引和常见函数
    一篇博客搞定redis基础
    新型横向移动工具原理分析、代码分析、优缺点以及检测方案
    Java反序列化漏洞的挖掘、攻击与防御
    关于Memcached反射型DRDoS攻击分析
    spark未授权RCE漏洞
  • 原文地址:https://www.cnblogs.com/kyooo/p/13301439.html
Copyright © 2011-2022 走看看