Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache centos 7 SSL配置错误_Apache_Ssl_Configuration_Centos_Restart - Fatal编程技术网

Apache centos 7 SSL配置错误

Apache centos 7 SSL配置错误,apache,ssl,configuration,centos,restart,Apache,Ssl,Configuration,Centos,Restart,在尝试通过以下步骤在服务器上配置SSL证书后,尝试重新启动apache时出错: 运行此代码 sudo yum安装mod_ssl 如下所示配置my ssl.conf(所有经过验证的文件都存在于其路径位置)。仅更改了以下默认行: DocumentRoot“/var/www/mydomain.com” 服务器名www.mydomain.com:443 SSLCertificateFile/etc/pki/tls/certs/mydomain.com.crt SSLCertificateKeyFile

在尝试通过以下步骤在服务器上配置SSL证书后,尝试重新启动apache时出错:

  • 运行此代码
  • sudo yum安装mod_ssl

  • 如下所示配置my ssl.conf(所有经过验证的文件都存在于其路径位置)。仅更改了以下默认行:

    • DocumentRoot“/var/www/mydomain.com”
    • 服务器名www.mydomain.com:443
    • SSLCertificateFile/etc/pki/tls/certs/mydomain.com.crt
    • SSLCertificateKeyFile/etc/pki/tls/private/mydomain.com.key
    • SSLCACertificateFile/etc/pki/tls/certs/ca_mydomain.com.crt
  • 重新启动apache

  • 错误:

  • httpd.service的作业失败,因为控制进程已退出,错误代码为。有关详细信息,请参阅“systemctl status httpd.service”和“journalctl-xe”

    输出“systemctl状态httpd.service”:

    httpd.service - The Apache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Thu 2017-08-24 03:20:27 UTC; 14s ago
    Docs: man:httpd(8)
    man:apachectl(8)
    Process: 23587 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
    Process: 19255 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
    Process: 23586 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
    Main PID: 23586 (code=exited, status=1/FAILURE)
    
    Aug 24 03:20:27 web systemd[1]: Starting The Apache HTTP Server...
    Aug 24 03:20:27 web systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
    Aug 24 03:20:27 web kill[23587]: kill: cannot find process ""
    Aug 24 03:20:27 web systemd[1]: httpd.service: control process exited, code=exited status=1
    Aug 24 03:20:27 web systemd[1]: Failed to start The Apache HTTP Server.
    Aug 24 03:20:27 web systemd[1]: Unit httpd.service entered failed state.
    Aug 24 03:20:27 web systemd[1]: httpd.service failed.
    
    Aug 24 03:33:22 web polkitd[352]: Registered Authentication Agent for unix-process:23639:84834340 (system bus name :1.905
    Aug 24 03:33:22 web systemd[1]: Starting The Apache HTTP Server...
    -- Subject: Unit httpd.service has begun start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has begun starting up.
    Aug 24 03:33:22 web systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
    Aug 24 03:33:22 web kill[23646]: kill: cannot find process ""
    Aug 24 03:33:22 web systemd[1]: httpd.service: control process exited, code=exited status=1
    Aug 24 03:33:22 web systemd[1]: Failed to start The Apache HTTP Server.
    -- Subject: Unit httpd.service has failed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has failed.
    --
    -- The result is failed.
    Aug 24 03:33:22 web systemd[1]: Unit httpd.service entered failed state.
    Aug 24 03:33:22 web systemd[1]: httpd.service failed.
    Aug 24 03:33:22 web polkitd[352]: Unregistered Authentication Agent for unix-process:23639:84834340 (system bus name :1.9
    Aug 24 03:34:05 web sudo[23651]:    Nazar : TTY=pts/0 ; PWD=/etc/httpd/conf ; USER=root ; COMMAND=/bin/mv ../conf.d/ssl.c
    Aug 24 03:34:08 web sudo[23653]:    Nazar : TTY=pts/0 ; PWD=/etc/httpd/conf ; USER=root ; COMMAND=/sbin/apachectl start
    Aug 24 03:34:08 web polkitd[352]: Registered Authentication Agent for unix-process:23656:84838914 (system bus name :1.906
    Aug 24 03:34:08 web systemd[1]: Starting The Apache HTTP Server...
    -- Subject: Unit httpd.service has begun start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has begun starting up.
    Aug 24 03:34:08 web systemd[1]: Started The Apache HTTP Server.
    -- Subject: Unit httpd.service has finished start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has finished starting up.
    --
    -- The start-up result is done.
    Aug 24 03:34:08 web polkitd[352]: Unregistered Authentication Agent for unix-process:23656:84838914 (system bus name :1.9
    Aug 24 03:51:12 web sshd[23811]: Received disconnect from 221.194.47.224: 11:  [preauth]
    Aug 24 03:53:38 web sshd[23816]: Received disconnect from 221.194.47.233: 11:  [preauth]
    
        # When we also provide SSL we have to listen to the
        # the HTTPS port in addition.
        #
        Listen 443 https
    
        ##
        ##  SSL Global Context
        ##
        ##  All SSL configuration in this context applies both to
        ##  the main server and all SSL-enabled virtual hosts.
        ##
    
        #   Pass Phrase Dialog:
        #   Configure the pass phrase gathering process.
        #   The filtering dialog program (`builtin' is a internal
        #   terminal dialog) has to provide the pass phrase on stdout.
        SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
    
        #   Inter-Process Session Cache:
        #   Configure the SSL Session Cache: First the mechanism
        #   to use and second the expiring timeout (in seconds).
        SSLSessionCache         shmcb:/run/httpd/sslcache(512000)
        SSLSessionCacheTimeout  300
    
        #   Pseudo Random Number Generator (PRNG):
        #   Configure one or more sources to seed the PRNG of the
        #   SSL library. The seed data should be of good random quality.
        #   WARNING! On some platforms /dev/random blocks if not enough entropy
        #   is available. This means you then cannot use the /dev/random device
        #   because it would lead to very long connection times (as long as
        #   it requires to make more entropy available). But usually those
        #   platforms additionally provide a /dev/urandom device which doesn't
        #   block. So, if available, use this one instead. Read the mod_ssl User
        #   Manual for more details.
        SSLRandomSeed startup file:/dev/urandom  256
        SSLRandomSeed connect builtin
        #SSLRandomSeed startup file:/dev/random  512
        #SSLRandomSeed connect file:/dev/random  512
        #SSLRandomSeed connect file:/dev/urandom 512
    
        #
        # Use "SSLCryptoDevice" to enable any supported hardware
        # accelerators. Use "openssl engine -v" to list supported
        # engine names.  NOTE: If you enable an accelerator and the
        # server does not start, consult the error logs and ensure
        # your accelerator is functioning properly.
        #
        SSLCryptoDevice builtin
        #SSLCryptoDevice ubsec
    
        ##
        ## SSL Virtual Host Context
        ##
    
        <VirtualHost _default_:443>
    
        # General setup for the virtual host, inherited from global configuration
        DocumentRoot "/var/www/mydomain.com"
        ServerName www.mydomain.com:443
    
        # 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 HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
    
        #   Speed-optimized SSL Cipher configuration:
        #   If speed is your main concern (on busy HTTPS servers e.g.),
        #   you might want to force clients to specific, performance
        #   optimized ciphers. In this case, prepend those ciphers
        #   to the SSLCipherSuite list, and enable SSLHonorCipherOrder.
        #   Caveat: by giving precedence to RC4-SHA and AES128-SHA
        #   (as in the example below), most connections will no longer
        #   have perfect forward secrecy - if the server's key is
        #   compromised, captures of past or future traffic must be
        #   considered compromised, too.
        #SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5
        #SSLHonorCipherOrder on
    
        #   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/pki/tls/certs/mydomain.com.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/pki/tls/private/mydomain.com.key
    
        #   Server Certificate Chain:
        #   Point SSLCertificateChainFile at a file containing the
        #   concatenation of PEM encoded CA certificates which form the
        #   certificate chain for the server certificate. Alternatively
        #   the referenced file can be the same as SSLCertificateFile
        #   when the CA certificates are directly appended to the server
        #   certificate for convinience.
        #SSLCertificateChainFile /etc/pki/tls/certs/ca_mydomain.com.crt
    
        #   Certificate Authority (CA):
        #   Set the CA certificate verification path where to find CA
        #   certificates for client authentication or alternatively one
        #   huge file containing all of them (file must be PEM encoded)
        SSLCACertificateFile /etc/pki/tls/certs/ca_mydomain.com.crt
    
        #   Client Authentication (Type):
        #   Client certificate verification type and depth.  Types are
        #   none, optional, require and optional_no_ca.  Depth is a
        #   number which specifies how deeply to verify the certificate
        #   issuer chain before deciding the certificate is not valid.
        #SSLVerifyClient require
        #SSLVerifyDepth  10
    
        #   Access Control:
        #   With SSLRequire you can do per-directory access control based
        #   on arbitrary complex boolean expressions containing server
        #   variable checks and other lookup directives.  The syntax is a
        #   mixture between C and Perl.  See the mod_ssl documentation
        #   for more details.
        #<Location />
        #SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
        #            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
        #            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
        #            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
        #            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
        #           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
        #</Location>
    
        #   SSL Engine Options:
        #   Set various options for the SSL engine.
        #   o FakeBasicAuth:
        #     Translate the client X.509 into a Basic Authorisation.  This means that
        #     the standard Auth/DBMAuth methods can be used for access control.  The
        #     user name is the `one line' version of the client's X.509 certificate.
        #     Note that no password is obtained from the user. Every entry in the user
        #     file needs this password: `xxj31ZMTZzkVA'.
        #   o ExportCertData:
        #     This exports two additional environment variables: SSL_CLIENT_CERT and
        #     SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
        #     server (always existing) and the client (only existing when client
        #     authentication is used). This can be used to import the certificates
        #     into CGI scripts.
        #   o StdEnvVars:
        #     This exports the standard SSL/TLS related `SSL_*' environment variables.
        #     Per default this exportation is switched off for performance reasons,
        #     because the extraction step is an expensive operation and is usually
        #     useless for serving static content. So one usually enables the
        #     exportation for CGI and SSI requests only.
        #   o StrictRequire:
        #     This denies access when "SSLRequireSSL" or "SSLRequire" applied even
        #     under a "Satisfy any" situation, i.e. when it applies access is denied
        #     and no other module can change it.
        #   o OptRenegotiate:
        #     This enables optimized SSL connection renegotiation handling when SSL
        #     directives are used in per-directory context.
        #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
        <Files ~ "\.(cgi|shtml|phtml|php3?)$">
        SSLOptions +StdEnvVars
        </Files>
        <Directory "/var/www/cgi-bin">
        SSLOptions +StdEnvVars
        </Directory>
    
        #   SSL Protocol Adjustments:
        #   The safe and default but still SSL/TLS standard compliant shutdown
        #   approach is that mod_ssl sends the close notify alert but doesn't wait for
        #   the close notify alert from client. When you need a different shutdown
        #   approach you can use one of the following variables:
        #   o ssl-unclean-shutdown:
        #     This forces an unclean shutdown when the connection is closed, i.e. no
        #     SSL close notify alert is send or allowed to received.  This violates
        #     the SSL/TLS standard but is needed for some brain-dead browsers. Use
        #     this when you receive I/O errors because of the standard approach where
        #     mod_ssl sends the close notify alert.
        #   o ssl-accurate-shutdown:
        #     This forces an accurate shutdown when the connection is closed, i.e. a
        #     SSL close notify alert is send and mod_ssl waits for the close notify
        #     alert of the client. This is 100% SSL/TLS standard compliant, but in
        #     practice often causes hanging connections with brain-dead browsers. Use
        #     this only for browsers where you know that their SSL implementation
        #     works correctly.
        #   Notice: Most problems of broken clients are also related to the HTTP
        #   keep-alive facility, so you usually additionally want to disable
        #   keep-alive for those clients, too. Use variable "nokeepalive" for this.
        #   Similarly, one has to force some clients to use HTTP/1.0 to workaround
        #   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
        #   "force-response-1.0" for this.
        BrowserMatch "MSIE [2-5]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
    
        #   Per-Server Logging:
        #   The home of a custom SSL log file. Use this when you want a
        #   compact non-error SSL logfile on a virtual host basis.
        CustomLog logs/ssl_request_log \
        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    
        </VirtualHost>
    
    “journalctl-xe”的输出:

    httpd.service - The Apache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Thu 2017-08-24 03:20:27 UTC; 14s ago
    Docs: man:httpd(8)
    man:apachectl(8)
    Process: 23587 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
    Process: 19255 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
    Process: 23586 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
    Main PID: 23586 (code=exited, status=1/FAILURE)
    
    Aug 24 03:20:27 web systemd[1]: Starting The Apache HTTP Server...
    Aug 24 03:20:27 web systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
    Aug 24 03:20:27 web kill[23587]: kill: cannot find process ""
    Aug 24 03:20:27 web systemd[1]: httpd.service: control process exited, code=exited status=1
    Aug 24 03:20:27 web systemd[1]: Failed to start The Apache HTTP Server.
    Aug 24 03:20:27 web systemd[1]: Unit httpd.service entered failed state.
    Aug 24 03:20:27 web systemd[1]: httpd.service failed.
    
    Aug 24 03:33:22 web polkitd[352]: Registered Authentication Agent for unix-process:23639:84834340 (system bus name :1.905
    Aug 24 03:33:22 web systemd[1]: Starting The Apache HTTP Server...
    -- Subject: Unit httpd.service has begun start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has begun starting up.
    Aug 24 03:33:22 web systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
    Aug 24 03:33:22 web kill[23646]: kill: cannot find process ""
    Aug 24 03:33:22 web systemd[1]: httpd.service: control process exited, code=exited status=1
    Aug 24 03:33:22 web systemd[1]: Failed to start The Apache HTTP Server.
    -- Subject: Unit httpd.service has failed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has failed.
    --
    -- The result is failed.
    Aug 24 03:33:22 web systemd[1]: Unit httpd.service entered failed state.
    Aug 24 03:33:22 web systemd[1]: httpd.service failed.
    Aug 24 03:33:22 web polkitd[352]: Unregistered Authentication Agent for unix-process:23639:84834340 (system bus name :1.9
    Aug 24 03:34:05 web sudo[23651]:    Nazar : TTY=pts/0 ; PWD=/etc/httpd/conf ; USER=root ; COMMAND=/bin/mv ../conf.d/ssl.c
    Aug 24 03:34:08 web sudo[23653]:    Nazar : TTY=pts/0 ; PWD=/etc/httpd/conf ; USER=root ; COMMAND=/sbin/apachectl start
    Aug 24 03:34:08 web polkitd[352]: Registered Authentication Agent for unix-process:23656:84838914 (system bus name :1.906
    Aug 24 03:34:08 web systemd[1]: Starting The Apache HTTP Server...
    -- Subject: Unit httpd.service has begun start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has begun starting up.
    Aug 24 03:34:08 web systemd[1]: Started The Apache HTTP Server.
    -- Subject: Unit httpd.service has finished start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has finished starting up.
    --
    -- The start-up result is done.
    Aug 24 03:34:08 web polkitd[352]: Unregistered Authentication Agent for unix-process:23656:84838914 (system bus name :1.9
    Aug 24 03:51:12 web sshd[23811]: Received disconnect from 221.194.47.224: 11:  [preauth]
    Aug 24 03:53:38 web sshd[23816]: Received disconnect from 221.194.47.233: 11:  [preauth]
    
        # When we also provide SSL we have to listen to the
        # the HTTPS port in addition.
        #
        Listen 443 https
    
        ##
        ##  SSL Global Context
        ##
        ##  All SSL configuration in this context applies both to
        ##  the main server and all SSL-enabled virtual hosts.
        ##
    
        #   Pass Phrase Dialog:
        #   Configure the pass phrase gathering process.
        #   The filtering dialog program (`builtin' is a internal
        #   terminal dialog) has to provide the pass phrase on stdout.
        SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
    
        #   Inter-Process Session Cache:
        #   Configure the SSL Session Cache: First the mechanism
        #   to use and second the expiring timeout (in seconds).
        SSLSessionCache         shmcb:/run/httpd/sslcache(512000)
        SSLSessionCacheTimeout  300
    
        #   Pseudo Random Number Generator (PRNG):
        #   Configure one or more sources to seed the PRNG of the
        #   SSL library. The seed data should be of good random quality.
        #   WARNING! On some platforms /dev/random blocks if not enough entropy
        #   is available. This means you then cannot use the /dev/random device
        #   because it would lead to very long connection times (as long as
        #   it requires to make more entropy available). But usually those
        #   platforms additionally provide a /dev/urandom device which doesn't
        #   block. So, if available, use this one instead. Read the mod_ssl User
        #   Manual for more details.
        SSLRandomSeed startup file:/dev/urandom  256
        SSLRandomSeed connect builtin
        #SSLRandomSeed startup file:/dev/random  512
        #SSLRandomSeed connect file:/dev/random  512
        #SSLRandomSeed connect file:/dev/urandom 512
    
        #
        # Use "SSLCryptoDevice" to enable any supported hardware
        # accelerators. Use "openssl engine -v" to list supported
        # engine names.  NOTE: If you enable an accelerator and the
        # server does not start, consult the error logs and ensure
        # your accelerator is functioning properly.
        #
        SSLCryptoDevice builtin
        #SSLCryptoDevice ubsec
    
        ##
        ## SSL Virtual Host Context
        ##
    
        <VirtualHost _default_:443>
    
        # General setup for the virtual host, inherited from global configuration
        DocumentRoot "/var/www/mydomain.com"
        ServerName www.mydomain.com:443
    
        # 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 HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
    
        #   Speed-optimized SSL Cipher configuration:
        #   If speed is your main concern (on busy HTTPS servers e.g.),
        #   you might want to force clients to specific, performance
        #   optimized ciphers. In this case, prepend those ciphers
        #   to the SSLCipherSuite list, and enable SSLHonorCipherOrder.
        #   Caveat: by giving precedence to RC4-SHA and AES128-SHA
        #   (as in the example below), most connections will no longer
        #   have perfect forward secrecy - if the server's key is
        #   compromised, captures of past or future traffic must be
        #   considered compromised, too.
        #SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5
        #SSLHonorCipherOrder on
    
        #   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/pki/tls/certs/mydomain.com.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/pki/tls/private/mydomain.com.key
    
        #   Server Certificate Chain:
        #   Point SSLCertificateChainFile at a file containing the
        #   concatenation of PEM encoded CA certificates which form the
        #   certificate chain for the server certificate. Alternatively
        #   the referenced file can be the same as SSLCertificateFile
        #   when the CA certificates are directly appended to the server
        #   certificate for convinience.
        #SSLCertificateChainFile /etc/pki/tls/certs/ca_mydomain.com.crt
    
        #   Certificate Authority (CA):
        #   Set the CA certificate verification path where to find CA
        #   certificates for client authentication or alternatively one
        #   huge file containing all of them (file must be PEM encoded)
        SSLCACertificateFile /etc/pki/tls/certs/ca_mydomain.com.crt
    
        #   Client Authentication (Type):
        #   Client certificate verification type and depth.  Types are
        #   none, optional, require and optional_no_ca.  Depth is a
        #   number which specifies how deeply to verify the certificate
        #   issuer chain before deciding the certificate is not valid.
        #SSLVerifyClient require
        #SSLVerifyDepth  10
    
        #   Access Control:
        #   With SSLRequire you can do per-directory access control based
        #   on arbitrary complex boolean expressions containing server
        #   variable checks and other lookup directives.  The syntax is a
        #   mixture between C and Perl.  See the mod_ssl documentation
        #   for more details.
        #<Location />
        #SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
        #            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
        #            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
        #            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
        #            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
        #           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
        #</Location>
    
        #   SSL Engine Options:
        #   Set various options for the SSL engine.
        #   o FakeBasicAuth:
        #     Translate the client X.509 into a Basic Authorisation.  This means that
        #     the standard Auth/DBMAuth methods can be used for access control.  The
        #     user name is the `one line' version of the client's X.509 certificate.
        #     Note that no password is obtained from the user. Every entry in the user
        #     file needs this password: `xxj31ZMTZzkVA'.
        #   o ExportCertData:
        #     This exports two additional environment variables: SSL_CLIENT_CERT and
        #     SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
        #     server (always existing) and the client (only existing when client
        #     authentication is used). This can be used to import the certificates
        #     into CGI scripts.
        #   o StdEnvVars:
        #     This exports the standard SSL/TLS related `SSL_*' environment variables.
        #     Per default this exportation is switched off for performance reasons,
        #     because the extraction step is an expensive operation and is usually
        #     useless for serving static content. So one usually enables the
        #     exportation for CGI and SSI requests only.
        #   o StrictRequire:
        #     This denies access when "SSLRequireSSL" or "SSLRequire" applied even
        #     under a "Satisfy any" situation, i.e. when it applies access is denied
        #     and no other module can change it.
        #   o OptRenegotiate:
        #     This enables optimized SSL connection renegotiation handling when SSL
        #     directives are used in per-directory context.
        #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
        <Files ~ "\.(cgi|shtml|phtml|php3?)$">
        SSLOptions +StdEnvVars
        </Files>
        <Directory "/var/www/cgi-bin">
        SSLOptions +StdEnvVars
        </Directory>
    
        #   SSL Protocol Adjustments:
        #   The safe and default but still SSL/TLS standard compliant shutdown
        #   approach is that mod_ssl sends the close notify alert but doesn't wait for
        #   the close notify alert from client. When you need a different shutdown
        #   approach you can use one of the following variables:
        #   o ssl-unclean-shutdown:
        #     This forces an unclean shutdown when the connection is closed, i.e. no
        #     SSL close notify alert is send or allowed to received.  This violates
        #     the SSL/TLS standard but is needed for some brain-dead browsers. Use
        #     this when you receive I/O errors because of the standard approach where
        #     mod_ssl sends the close notify alert.
        #   o ssl-accurate-shutdown:
        #     This forces an accurate shutdown when the connection is closed, i.e. a
        #     SSL close notify alert is send and mod_ssl waits for the close notify
        #     alert of the client. This is 100% SSL/TLS standard compliant, but in
        #     practice often causes hanging connections with brain-dead browsers. Use
        #     this only for browsers where you know that their SSL implementation
        #     works correctly.
        #   Notice: Most problems of broken clients are also related to the HTTP
        #   keep-alive facility, so you usually additionally want to disable
        #   keep-alive for those clients, too. Use variable "nokeepalive" for this.
        #   Similarly, one has to force some clients to use HTTP/1.0 to workaround
        #   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
        #   "force-response-1.0" for this.
        BrowserMatch "MSIE [2-5]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
    
        #   Per-Server Logging:
        #   The home of a custom SSL log file. Use this when you want a
        #   compact non-error SSL logfile on a virtual host basis.
        CustomLog logs/ssl_request_log \
        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    
        </VirtualHost>
    
    我的ssl.conf的副本:

    httpd.service - The Apache HTTP Server
    Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since Thu 2017-08-24 03:20:27 UTC; 14s ago
    Docs: man:httpd(8)
    man:apachectl(8)
    Process: 23587 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
    Process: 19255 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
    Process: 23586 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
    Main PID: 23586 (code=exited, status=1/FAILURE)
    
    Aug 24 03:20:27 web systemd[1]: Starting The Apache HTTP Server...
    Aug 24 03:20:27 web systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
    Aug 24 03:20:27 web kill[23587]: kill: cannot find process ""
    Aug 24 03:20:27 web systemd[1]: httpd.service: control process exited, code=exited status=1
    Aug 24 03:20:27 web systemd[1]: Failed to start The Apache HTTP Server.
    Aug 24 03:20:27 web systemd[1]: Unit httpd.service entered failed state.
    Aug 24 03:20:27 web systemd[1]: httpd.service failed.
    
    Aug 24 03:33:22 web polkitd[352]: Registered Authentication Agent for unix-process:23639:84834340 (system bus name :1.905
    Aug 24 03:33:22 web systemd[1]: Starting The Apache HTTP Server...
    -- Subject: Unit httpd.service has begun start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has begun starting up.
    Aug 24 03:33:22 web systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
    Aug 24 03:33:22 web kill[23646]: kill: cannot find process ""
    Aug 24 03:33:22 web systemd[1]: httpd.service: control process exited, code=exited status=1
    Aug 24 03:33:22 web systemd[1]: Failed to start The Apache HTTP Server.
    -- Subject: Unit httpd.service has failed
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has failed.
    --
    -- The result is failed.
    Aug 24 03:33:22 web systemd[1]: Unit httpd.service entered failed state.
    Aug 24 03:33:22 web systemd[1]: httpd.service failed.
    Aug 24 03:33:22 web polkitd[352]: Unregistered Authentication Agent for unix-process:23639:84834340 (system bus name :1.9
    Aug 24 03:34:05 web sudo[23651]:    Nazar : TTY=pts/0 ; PWD=/etc/httpd/conf ; USER=root ; COMMAND=/bin/mv ../conf.d/ssl.c
    Aug 24 03:34:08 web sudo[23653]:    Nazar : TTY=pts/0 ; PWD=/etc/httpd/conf ; USER=root ; COMMAND=/sbin/apachectl start
    Aug 24 03:34:08 web polkitd[352]: Registered Authentication Agent for unix-process:23656:84838914 (system bus name :1.906
    Aug 24 03:34:08 web systemd[1]: Starting The Apache HTTP Server...
    -- Subject: Unit httpd.service has begun start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has begun starting up.
    Aug 24 03:34:08 web systemd[1]: Started The Apache HTTP Server.
    -- Subject: Unit httpd.service has finished start-up
    -- Defined-By: systemd
    -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
    --
    -- Unit httpd.service has finished starting up.
    --
    -- The start-up result is done.
    Aug 24 03:34:08 web polkitd[352]: Unregistered Authentication Agent for unix-process:23656:84838914 (system bus name :1.9
    Aug 24 03:51:12 web sshd[23811]: Received disconnect from 221.194.47.224: 11:  [preauth]
    Aug 24 03:53:38 web sshd[23816]: Received disconnect from 221.194.47.233: 11:  [preauth]
    
        # When we also provide SSL we have to listen to the
        # the HTTPS port in addition.
        #
        Listen 443 https
    
        ##
        ##  SSL Global Context
        ##
        ##  All SSL configuration in this context applies both to
        ##  the main server and all SSL-enabled virtual hosts.
        ##
    
        #   Pass Phrase Dialog:
        #   Configure the pass phrase gathering process.
        #   The filtering dialog program (`builtin' is a internal
        #   terminal dialog) has to provide the pass phrase on stdout.
        SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
    
        #   Inter-Process Session Cache:
        #   Configure the SSL Session Cache: First the mechanism
        #   to use and second the expiring timeout (in seconds).
        SSLSessionCache         shmcb:/run/httpd/sslcache(512000)
        SSLSessionCacheTimeout  300
    
        #   Pseudo Random Number Generator (PRNG):
        #   Configure one or more sources to seed the PRNG of the
        #   SSL library. The seed data should be of good random quality.
        #   WARNING! On some platforms /dev/random blocks if not enough entropy
        #   is available. This means you then cannot use the /dev/random device
        #   because it would lead to very long connection times (as long as
        #   it requires to make more entropy available). But usually those
        #   platforms additionally provide a /dev/urandom device which doesn't
        #   block. So, if available, use this one instead. Read the mod_ssl User
        #   Manual for more details.
        SSLRandomSeed startup file:/dev/urandom  256
        SSLRandomSeed connect builtin
        #SSLRandomSeed startup file:/dev/random  512
        #SSLRandomSeed connect file:/dev/random  512
        #SSLRandomSeed connect file:/dev/urandom 512
    
        #
        # Use "SSLCryptoDevice" to enable any supported hardware
        # accelerators. Use "openssl engine -v" to list supported
        # engine names.  NOTE: If you enable an accelerator and the
        # server does not start, consult the error logs and ensure
        # your accelerator is functioning properly.
        #
        SSLCryptoDevice builtin
        #SSLCryptoDevice ubsec
    
        ##
        ## SSL Virtual Host Context
        ##
    
        <VirtualHost _default_:443>
    
        # General setup for the virtual host, inherited from global configuration
        DocumentRoot "/var/www/mydomain.com"
        ServerName www.mydomain.com:443
    
        # 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 HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
    
        #   Speed-optimized SSL Cipher configuration:
        #   If speed is your main concern (on busy HTTPS servers e.g.),
        #   you might want to force clients to specific, performance
        #   optimized ciphers. In this case, prepend those ciphers
        #   to the SSLCipherSuite list, and enable SSLHonorCipherOrder.
        #   Caveat: by giving precedence to RC4-SHA and AES128-SHA
        #   (as in the example below), most connections will no longer
        #   have perfect forward secrecy - if the server's key is
        #   compromised, captures of past or future traffic must be
        #   considered compromised, too.
        #SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5
        #SSLHonorCipherOrder on
    
        #   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/pki/tls/certs/mydomain.com.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/pki/tls/private/mydomain.com.key
    
        #   Server Certificate Chain:
        #   Point SSLCertificateChainFile at a file containing the
        #   concatenation of PEM encoded CA certificates which form the
        #   certificate chain for the server certificate. Alternatively
        #   the referenced file can be the same as SSLCertificateFile
        #   when the CA certificates are directly appended to the server
        #   certificate for convinience.
        #SSLCertificateChainFile /etc/pki/tls/certs/ca_mydomain.com.crt
    
        #   Certificate Authority (CA):
        #   Set the CA certificate verification path where to find CA
        #   certificates for client authentication or alternatively one
        #   huge file containing all of them (file must be PEM encoded)
        SSLCACertificateFile /etc/pki/tls/certs/ca_mydomain.com.crt
    
        #   Client Authentication (Type):
        #   Client certificate verification type and depth.  Types are
        #   none, optional, require and optional_no_ca.  Depth is a
        #   number which specifies how deeply to verify the certificate
        #   issuer chain before deciding the certificate is not valid.
        #SSLVerifyClient require
        #SSLVerifyDepth  10
    
        #   Access Control:
        #   With SSLRequire you can do per-directory access control based
        #   on arbitrary complex boolean expressions containing server
        #   variable checks and other lookup directives.  The syntax is a
        #   mixture between C and Perl.  See the mod_ssl documentation
        #   for more details.
        #<Location />
        #SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
        #            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
        #            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
        #            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
        #            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
        #           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
        #</Location>
    
        #   SSL Engine Options:
        #   Set various options for the SSL engine.
        #   o FakeBasicAuth:
        #     Translate the client X.509 into a Basic Authorisation.  This means that
        #     the standard Auth/DBMAuth methods can be used for access control.  The
        #     user name is the `one line' version of the client's X.509 certificate.
        #     Note that no password is obtained from the user. Every entry in the user
        #     file needs this password: `xxj31ZMTZzkVA'.
        #   o ExportCertData:
        #     This exports two additional environment variables: SSL_CLIENT_CERT and
        #     SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
        #     server (always existing) and the client (only existing when client
        #     authentication is used). This can be used to import the certificates
        #     into CGI scripts.
        #   o StdEnvVars:
        #     This exports the standard SSL/TLS related `SSL_*' environment variables.
        #     Per default this exportation is switched off for performance reasons,
        #     because the extraction step is an expensive operation and is usually
        #     useless for serving static content. So one usually enables the
        #     exportation for CGI and SSI requests only.
        #   o StrictRequire:
        #     This denies access when "SSLRequireSSL" or "SSLRequire" applied even
        #     under a "Satisfy any" situation, i.e. when it applies access is denied
        #     and no other module can change it.
        #   o OptRenegotiate:
        #     This enables optimized SSL connection renegotiation handling when SSL
        #     directives are used in per-directory context.
        #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
        <Files ~ "\.(cgi|shtml|phtml|php3?)$">
        SSLOptions +StdEnvVars
        </Files>
        <Directory "/var/www/cgi-bin">
        SSLOptions +StdEnvVars
        </Directory>
    
        #   SSL Protocol Adjustments:
        #   The safe and default but still SSL/TLS standard compliant shutdown
        #   approach is that mod_ssl sends the close notify alert but doesn't wait for
        #   the close notify alert from client. When you need a different shutdown
        #   approach you can use one of the following variables:
        #   o ssl-unclean-shutdown:
        #     This forces an unclean shutdown when the connection is closed, i.e. no
        #     SSL close notify alert is send or allowed to received.  This violates
        #     the SSL/TLS standard but is needed for some brain-dead browsers. Use
        #     this when you receive I/O errors because of the standard approach where
        #     mod_ssl sends the close notify alert.
        #   o ssl-accurate-shutdown:
        #     This forces an accurate shutdown when the connection is closed, i.e. a
        #     SSL close notify alert is send and mod_ssl waits for the close notify
        #     alert of the client. This is 100% SSL/TLS standard compliant, but in
        #     practice often causes hanging connections with brain-dead browsers. Use
        #     this only for browsers where you know that their SSL implementation
        #     works correctly.
        #   Notice: Most problems of broken clients are also related to the HTTP
        #   keep-alive facility, so you usually additionally want to disable
        #   keep-alive for those clients, too. Use variable "nokeepalive" for this.
        #   Similarly, one has to force some clients to use HTTP/1.0 to workaround
        #   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
        #   "force-response-1.0" for this.
        BrowserMatch "MSIE [2-5]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
    
        #   Per-Server Logging:
        #   The home of a custom SSL log file. Use this when you want a
        #   compact non-error SSL logfile on a virtual host basis.
        CustomLog logs/ssl_request_log \
        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    
        </VirtualHost>
    
    #当我们还提供SSL时,我们必须听取
    #此外,HTTPS端口。
    #
    听443https
    ##
    ##SSL全局上下文
    ##
    ##此上下文中的所有SSL配置都适用于
    ##主服务器和所有启用SSL的虚拟主机。
    ##
    #传递短语对话框:
    #配置密码短语收集过程。
    #筛选对话框程序(`builtin'是一个内部
    #终端对话框)必须在标准输出上提供密码短语。
    SSLPassPhraseDialog exec:/usr/libexec/httpd ssl密码对话框
    #进程间会话缓存:
    #配置SSL会话缓存:首先是机制
    #使用和秒过期超时(以秒为单位)。
    SSLSessionCache shmcb:/run/httpd/sslcache(512000)
    SSLSessionCacheTimeout 300
    #伪随机数发生器(PRNG):
    #配置一个或多个源,以为
    #SSL库。种子数据应具有良好的随机质量。
    #警告!在某些平台上/dev/random块(如果没有足够的熵)
    #有空。这意味着您不能使用/dev/random设备
    #因为这会导致很长的连接时间(只要
    #它需要提供更多的熵)。但通常那些
    #平台还提供了一个/dev/uradom设备,该设备不需要
    #街区。因此,如果可用,请改用这个。读取mod_ssl用户
    #有关更多详细信息,请参阅手册。
    SSLRandomSeed启动文件:/dev/uradom 256
    SSLR和OMSEED连接内置
    #SSLRandomSeed启动文件:/dev/random 512
    #SSLRandomSeed连接文件:/dev/random 512
    #SSLRandomSeed连接文件:/dev/uradom 512
    #
    #使用“SSLCryptoDevice”启用任何受支持的硬件
    #加速器。使用“openssl引擎-v”列出支持的
    #引擎名称。注意:如果启用加速器和
    #服务器未启动,请查阅错误日志并确保
    #您的加速器工作正常。
    #
    SSLCryptoDevice内置
    #SSLCryptoDevice ubsec
    ##
    ##SSL虚拟主机上下文
    ##
    #虚拟主机的常规设置,从全局配置继承
    DocumentRoot“/var/www/mydomain.com”
    服务器名www.mydomain.com:443
    #为SSL虚拟主机使用单独的日志文件;注意,LogLevel
    #不是从httpd.conf继承的。
    错误日志/ssl\u错误日志
    传输日志/ssl访问日志
    日志级别警告
    #SSL引擎交换机:
    #为此虚拟主机启用/禁用SSL。
    斯伦金安
    #SSL协议支持:
    #列出客户端可以使用的启用协议级别
    #连接。默认情况下禁用SSLv2访问:
    SSLProtocol all-SSLv2
    #SSL密码套件:
    #列出允许客户协商的密码。
    #有关完整列表,请参阅mod_ssl文档。
    SSLCipherSuite高:中:!阿努尔:!MD5:!种子:!主意
    #速度优化的SSL密码配置:
    #如果您主要关心速度(例如在繁忙的HTTPS服务器上),
    #您可能希望强制客户机使用特定的性能
    #优化密码。在这种情况下,请在这些密码前面加上前缀
    #到SSLCipherSuite列表,并启用SSLHonorCipherOrder。
    #警告:优先考虑RC4-SHA和AES128-SHA
    #(如下面的示例中所示),大多数连接将不再
    #拥有完美的前向保密性-如果服务器的密钥是
    #泄露,过去或未来流量的捕获必须
    #也被认为是妥协了。
    #SSLCipherSuite RC4-SHA:AES128-SHA:高:中:!阿努尔:!MD5
    #SSLHonorCipherOrder开启
    #服务器证书:
    #将SSLCertificateFile指向PEM编码的证书。如果
    #证书已加密,然后系统将提示您输入密码
    #传递短语。请注意,kill-HUP将再次提示。一个新的
    #可以使用genkey(1)命令生成证书。
    SSLCertificateFile/etc/pki/tls/certs/mydomain.com.crt
    #服务器私钥:
    #如果密钥未与证书组合,请使用此
    #指向密钥文件的指令。记住,如果
    #您同时拥有RSA和DSA私钥,可以进行配置
    #两者并行(也允许使用DSA密码等)
    SSLCertificateKeyFile/etc/pki/tls/private/mydomain.com.key
    #服务器证书链:
    #将SSLCertificateChainFile指向包含
    #PEM编码CA证书的串联,这些证书构成
    #服务器证书的证书链。或者
    #引用的文件可以与SSLCertificateFile相同
    #将CA证书直接附加到服务器时
    #方便证书。
    #SSLCertificateChainFile/etc/pki/tls/certs/ca_mydomain.com.crt
    #证书颁发机构(CA):
    #将CA证书验证设置为pa