zoukankan      html  css  js  c++  java
  • HTTPD服务 openssl的https服务机制

    环境:

    环境:

    httpd服务器:10.140.165.169

    CA服务器:10.140.165.93

    CA服务器配置:

    1.安装openssl 

    [root@cnhzdhcp16593 ~]# yum -y install openssl

    2.生成CA自己的私钥.

    [root@cnhzdhcp16593 ~]# cd /etc/pki/CA/

    [root@cnhzdhcp16593 CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)
    Generating RSA private key, 2048 bit long modulus
    ................................+++
    ...........................+++
    e is 65537 (0x10001)

    3.定义openssl.cnf文件

    [root@cnhzdhcp16593 CA]# grep "_default" ../tls/openssl.cnf | tail -6
    countryName_default        = CN
    stateOrProvinceName_default    = ZheJiang
    localityName_default    = Hangzhou
    0.organizationName_default    = izyno
    #1.organizationName_default    = World Wide Web Pty Ltd
    organizationalUnitName_default    = Tech

    CA目录定义:

    ####################################################################
    [ CA_default ]

    dir             = /etc/pki/CA           # Where everything is kept
    certs           = $dir/certs            # Where the issued certs are kept
    crl_dir         = $dir/crl              # Where the issued crl are kept
    database        = $dir/index.txt        # database index file.
    #unique_subject = no                    # Set to 'no' to allow creation of
                                            # several ctificates with same subject.
    new_certs_dir   = $dir/newcerts         # default place for new certs.

    certificate     = $dir/cacert.pem       # The CA certificate
    serial          = $dir/serial           # The current serial number
    crlnumber       = $dir/crlnumber        # the current crl number
                                            # must be commented out to leave a V1 CRL
    crl             = $dir/crl.pem          # The current CRL
    private_key     = $dir/private/cakey.pem# The private key
    RANDFILE        = $dir/private/.rand    # private random number file

    4.生成自签证书.

    [root@cnhzdhcp16593 CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [CN]:     #设置国家
    State or Province Name (full name) [ZheJiang]:   #省份
    Locality Name (eg, city) [Hangzhou]:  #城市
    Organization Name (eg, company) [izyno]:   #公司名称
    Organizational Unit Name (eg, section) [Tech]:    #部门
    www.izyno.com []:   #主机名
    glq126@126.com []:


     

    5.新建所需CA文件.

    [root@localhost CA]# touch index.txt
    [root@localhost CA]# echo 01 > serial
    [root@localhost CA]# ls
    certs  crl  index.txt  newcerts  private  serial
    [root@localhost CA]#


     


     

    httpd服务配置:

    [root@localhost ~]# mkdir /etc/httpd/ssl    #新建一个密钥存放目录,此目录需要在ssl.conf文件配置.

    1.生成httpd服务私有CA.

    [root@localhost ssl]# (umask 077;openssl genrsa -out httpd.key 2048)
    Generating RSA private key, 2048 bit long modulus
    ......+++
    ...............+++
    e is 65537 (0x10001)
    [root@localhost ssl]#

    2.生成证书签署请求.

    [root@localhost ssl]# openssl req -new -key httpd.key -out httpd.csr
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [CN]:
    State or Province Name (full name) [ZheJiang]:
    Locality Name (eg, city) [Hangzhou]:
    Organization Name (eg, company) [izyno]:
    Organizational Unit Name (eg, section) [Tech]:
    ca.izyno.com []:
    glq126@126.com []:

    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:


     

    3.CA服务器签署认证.

    将生成的httpd.csr 文件传输到CA服务器,进行CA服务器签署认证.


     

    在CA服务器进行签署认证:

    [root@cnhzdhcp16593 CA]# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 3650
    Using configuration from /etc/pki/tls/openssl.cnf
    Check that the request matches the signature
    Signature ok
    Certificate Details:
            Serial Number: 1 (0x1)
            Validity
                Not Before: Oct 11 14:19:54 2016 GMT
                Not After : Oct  9 14:19:54 2026 GMT
            Subject:
                countryName               = CN
                stateOrProvinceName       = ZheJiang
                organizationName          = izyno
                organizationalUnitName    = Tech
                commonName                = www.izyno.com
            X509v3 extensions:
                X509v3 Basic Constraints:
                    CA:FALSE
                Netscape Comment:
                    OpenSSL Generated Certificate
                X509v3 Subject Key Identifier:
                    FD:9F:4F:11:0C:83:8E:78:69:1A:C1:0C:EA:1D:17:73:27:91:02:20
                X509v3 Authority Key Identifier:
                   keyid:26:61:3D:38:E5:88:0F:D4:93:FA:AB:40:FC:4F:04:78:43:A0:86:95

    Certificate is to be certified until Oct  9 14:19:54 2026 GMT (3650 days)
    Sign the certificate? [y/n]:y
    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated
    [root@cnhzdhcp16593 CA]#

    4.在CA服务器生成的httpd.crt文件传输到httpd服务器.

    [root@cnhzdhcp16593 CA]# scp /tmp/httpd.crt 10.140.165.169:/etc/httpd/ssl/httpd.crt

    配置ssl.conf文件在httpd服务器:

    1.[root@localhost ssl]# vim /etc/httpd/conf.d/ssl.conf

    <VirtualHost 10.140.165.169:443>    #设置虚拟主机IP

    # General setup for the virtual host, inherited from global configuration
    #DocumentRoot "/var/www/html"   

    ServerName www.izyno.com     #主机名
    DocumentRoot "/www/izyno.com"  #主机根目录

    # Use separate log files for the SSL virtual host; note that LogLevel
    # is not inherited from httpd.conf.
    ErrorLog logs/ssl_error_log   #错误日志
    TransferLog logs/ssl_access_log  #访问日志定义
    LogLevel warn

    #   SSL Engine Switch:
    #   Enable/Disable SSL for this virtual host.
    SSLEngine on

    #   SSL Protocol support:
    # List the enable protocol levels with which clients will be able to
    # connect.  Disable SSLv2 access by default:
    SSLProtocol all -SSLv2

    #   SSL Cipher Suite:
    # List the ciphers that the client is permitted to negotiate.
    # See the mod_ssl documentation for a complete list.
    SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES

    #   Server Certificate:
    # Point SSLCertificateFile at a PEM encoded certificate.  If
    # the certificate is encrypted, then you will be prompted for a
    # pass phrase.  Note that a kill -HUP will prompt again.  A new
    # certificate can be generated using the genkey(1) command.
    SSLCertificateFile /etc/httpd/ssl/httpd.crt     #定义证书

    #   Server Private Key:
    #   If the key is not combined with the certificate, use this
    #   directive to point at the key file.  Keep in mind that if
    #   you've both a RSA and a DSA private key you can configure
    #   both in parallel (to also allow the use of DSA ciphers, etc.)
    SSLCertificateKeyFile /etc/httpd/ssl/httpd.key  #定义密钥

    重启httpd服务.

    在windos端访问:

    导入CA服务器证书:

    image

    证书导入:

    image

    导入从CA服务器导出的crt格式文件.

    访问:

    image

  • 相关阅读:
    ASCII码对照表
    有种美叫做放弃
    OCX和DLL的区别
    江湖经验:喝酒的学问技巧
    TC2.0实现多文件编译
    希尔排序
    CalcOpticalFlowPyrLK的使用(转)
    简单选择排序的实现
    VS2008中解决方案窗口的问题
    用友T3用友通行政单位没有损益类科目,如何做期间损益结转?
  • 原文地址:https://www.cnblogs.com/ligao/p/5949663.html
Copyright © 2011-2022 走看看