zoukankan      html  css  js  c++  java
  • openssl证书及配置

    我的环境是:Linux+Apache+MySQL+PHP

    1.下载openssl 及相关依赖

    #yum install -y openssl

    2.进入目录 /etc/pki/tls/certs

    #cd /etc/pki/tls/certs

    3.生成私钥文件(key)

    #openssl genrsa -des3 -out server.key 1024

      在提示后输入密码(密码不显示)

    4.为避免每次服务启动都需输入证书密码,删除证书密码

    #openssl rsa -in server.key -out server.key

    5.用server.key生成证书

    #openssl req -new -key server.key -out server.csr

    参数说明:

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

    -key:用到的私钥文件

    -out:证书的保存路径

    -days:证书的有效期限,单位是day(天),默认是openssl.cnf的default_days

      此时根据提示完成以下信息:

    Country Name (2 letter code) [XX]:CN 
    State or Province Name (full name) []:Yangzhou
    Locality Name (eg, city) [Default City]:Yangzhou
    Organization Name (eg, company) [Default Company Ltd]:No 
    Organizational Unit Name (eg, section) []:New 
    Common Name (eg, your name or your server's hostname) []:No
    Email Address []:test@test.com 
    Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:#可直接回车 
    An optional company name []:#若上面回车,这边直接回车

    6.生成CA的key文件ca.key和根证书ca.crt

    #openssl req -new -x509 -keyout ca.key -out ca.crt

      此时提示信息与上一步类似

    7.创建为根证书CA所需的目录及文件

    #touch /etc/pki/CA/index.txt

    8.指明证书的开始编号

    #echo 01 > /etc/pki/CA/serial

    9.用CA证书为server.csr证书签名

    #openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config ../openssl.cnf

      根据提示输入y,并回车

    10.将ca.crt,server.crt,server.key复制到apache配置目录

    例如:我的是/usr/local/apache/conf/

      我在conf中创建ssl目录用来存放

    # mkdir /usr/local/apache/conf/ssl

    11.配置apache

    编辑配置文件

    vi /usr/local/apache/conf/httpd.conf

    引入ssl配置文件,增加支持ssl:

    Include conf/extra/httpd-ssl.conf 去掉前面的#

    打开ssl模块

    LoadModule ssl_module modules/mod_ssl.so  去掉前面的#

    若没有找到这句,说明需要安装依赖包:mod_ssl,安装后就会在modules里面找到:

    在apache的源码目录中的modules目录下找loggers,ssl这两个文件,若没有则需根据服务器apache版本下载对应版本:http://archive.apache.org/dist/httpd/

    将下载好的modules下的loggers,ssl两个文件放至你的apache的源码目录modules下

    查找openssl路径

    whereis openssl

    进入apache的源码目录modules/ssl中

    例如我的源码目录为/root/package/httpd-2.4.20

    cd /root/package/httpd-2.4.20/modules/ssl

    执行(/usr/local/apache 是Apache的安装目录)

    /usr/local/apache/bin/apxs -a -i -c -L/usr/lib/openssl/engines/lib -c *.c -lcrypto -lssl -ldl;

    完成后,在apache的安装目录下的modules目录会生成一个mod_ssl.so,同时httpd.conf中会增加一行LoadModule php5_module modules/libphp5.so 

     编辑httpd-ssl.conf文件

    vi /usr/local/apache/conf/extra/httpd-ssl.conf

    写入如下内容:

    <VirtualHost *:443> 
        ServerAdmin #输入的邮箱地址 
        php_admin_value open_basedir "/home/www/:/tmp/:/var/tmp/:/proc/" 
        DocumentRoot #工作目录,如/home/www 
        ServerName #域名:443 
        ErrorLog "/home/wwwlogs/error_log"
        CustomLog "/home/wwwlogs/access_log" combined 
        SSLEngine on 
        SSLCertificateFile /usr/local/apache/conf/ssl/server.crt#证书的路径 
        SSLCertificateKeyFile /usr/local/apache/conf/ssl/server.key#证书的路径 #
        SSLCertificateChainFile /usr/local/apache/conf/ssl/ca.crt#证书的路径 
        Protocols h2 h2c http/1.1 
        <Directory "/home/www/"> 
            SetOutputFilter DEFLATE 
            Options FollowSymLinks 
            AllowOverride All 
            Order allow,deny 
            Allow from all 
            DirectoryIndex index.php index.html 
        </Directory> 
    </VirtualHost>

    保存并重启Apache

    apachectl -k restart

    若出现这种报错

    解决:在httpd.conf中找到

    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so   去掉前面的#

    保存并重启

  • 相关阅读:
    【c语言】斐波那契数列
    【c语言】c语言中的问题--empty character constant
    【java 基础领域】类加载机制
    【书籍学习】汇编语言学习-第二章
    【专接本课程】c语言指针学习
    Balanced Binary Tree
    Symmetric Tree
    Same Tree
    Recover Binary Search Tree
    Binary Tree Zigzag Level Traversal
  • 原文地址:https://www.cnblogs.com/writerW/p/10300847.html
Copyright © 2011-2022 走看看