【问题标题】:Setting up SSL on a Raspbian Apache Server在 Raspbian Apache 服务器上设置 SSL
【发布时间】:2020-09-16 10:27:13
【问题描述】:

我有一个从 godaddy 购买的域和 SSL。我成功地将域指向了我的 Raspberry Pi 的 IP 地址。但是,SSL 存在一些问题。当我从 godaddy 下载 SSL 时,我得到两个 .crt 文件和一个 .pem 文件。 Godaddy 的说明只提到了一个 .key 文件和两个 .crt 文件。

在我的 apache 配置文件中,我按照 godaddy 的格式放入了一个 VirtualHost 标记,并替换了所有适当的信息:

<VirtualHost xxx.xxx.x.x:443>
DocumentRoot /var/www/coolexample
ServerName coolexample.com www.coolexample.com
    SSLEngine on
    SSLCertificateFile /path/to/coolexample.crt
    SSLCertificateKeyFile /path/to/privatekey.key
    SSLCertificateChainFile /path/to/intermediate.crt
</VirtualHost>

但是,如您所见,这需要私钥。启动我的 apache 服务器时,错误日志告诉我找不到私钥。我的问题是,在 VirtualHost 标签中,如何使用 godaddy 给我的文件正确设置我的 SSL?

【问题讨论】:

    标签: apache ssl raspberry-pi virtualhost raspbian


    【解决方案1】:

    这是一个可以进入您的虚拟主机的 TLS 1.2 实现:

        SSLEngine On 
        SSLCertificateFile  /etc/ssl/localcerts/xxxxxxx.crt
        SSLCertificateKeyFile /etc/ssl/localcerts/mysite.key
        SSLCertificateChainFile /etc/ssl/localcerts/bundle.crt
        SSLProtocol all -SSLv2 -SSLv3
        SSLHonorCipherOrder On
        SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"
    
    

    此外,您必须确保启用mod_ssl。在对应的配置文件中,可以做这样的事情(主要是库存)

    <IfModule mod_ssl.c>
    
        # 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 builtin
        SSLRandomSeed startup file:/dev/urandom 512
        SSLRandomSeed connect builtin
        SSLRandomSeed connect file:/dev/urandom 512
    
        ##
        ##  SSL Global Context
        ##
        ##  All SSL configuration in this context applies both to
        ##  the main server and all SSL-enabled virtual hosts.
        ##
    
        #
        #   Some MIME-types for downloading Certificates and CRLs
        #
        AddType application/x-x509-ca-cert .crt
        AddType application/x-pkcs7-crl .crl
    
        #   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/share/apache2/ask-for-passphrase
    
        #   Inter-Process Session Cache:
        #   Configure the SSL Session Cache: First the mechanism 
        #   to use and second the expiring timeout (in seconds).
        #   (The mechanism dbm has known memory leaks and should not be used).
        #SSLSessionCache         dbm:${APACHE_RUN_DIR}/ssl_scache
        SSLSessionCache     shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
        SSLSessionCacheTimeout  300
    
        #   Semaphore:
        #   Configure the path to the mutual exclusion semaphore the
        #   SSL engine uses internally for inter-process synchronization. 
        #   (Disabled by default, the global Mutex directive consolidates by default
        #   this)
        #Mutex file:${APACHE_LOCK_DIR}/ssl_mutex ssl-cache
    
    
        #   SSL Cipher Suite:
        #   List the ciphers that the client is permitted to negotiate. See the
        #   ciphers(1) man page from the openssl package for list of all available
        #   options.
        #   Enable only secure ciphers:
        SSLCipherSuite HIGH:!aNULL:!MD5
    
        # SSL server cipher order preference:
        # Use server priorities for cipher algorithm choice.
        # Clients may prefer lower grade encryption.  You should enable this
        # option if you want to enforce stronger encryption, and can afford
        # the CPU cost, and did not override SSLCipherSuite in a way that puts
        # insecure ciphers first.
        # Default: Off
        #SSLHonorCipherOrder on
    
        #   The protocols to enable.
        #   Available values: all, SSLv3, TLSv1, TLSv1.1, TLSv1.2
        #   SSL v2  is no longer supported
        SSLProtocol all -SSLv2 -SSLv3
    
        #   Allow insecure renegotiation with clients which do not yet support the
        #   secure renegotiation protocol. Default: Off
        #SSLInsecureRenegotiation on
    
        #   Whether to forbid non-SNI clients to access name based virtual hosts.
        #   Default: Off
        #SSLStrictSNIVHostCheck On
    </IfModule>
    

    这些更改应该让您使用 TLS 1.2。

    如果您的服务器用于生产“商业用途”,那么研究配置文件和虚拟主机非常重要。

    【讨论】:

      猜你喜欢
      • 2011-02-08
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 2021-05-04
      • 2012-06-14
      • 2015-04-27
      • 2016-01-18
      相关资源
      最近更新 更多