如何配置HTTPS访问? {#https}

在设置https访问之前,请提前开启服务器安全组的443端口,如果不开启,https访问是不可用的。

HTTPS访问配置(需自己准备证书)

如果您已经申请了证书(请保证证书可用),请参考如下的配置方式:

  1. 将证书上传到服务器证书目录:conf/ssl.*(*为目录后缀名)

  2. 打开C:\xampp\apache\conf\extra\httpd-ssl.conf配置文件

  3. 找到httpd-ssl.conf中的https配置内容模板(下面是去掉注释后的效果)

    <VirtualHost _default_:443>
    DocumentRoot "C:/xampp/htdocs"
    ServerName www.example.com:443
    ServerAdmin admin@example.com
    ErrorLog "C:/xampp/apache/logs/error.log"
    TransferLog "C:/xampp/apache/logs/access.log"
    
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateFile "conf/ssl.crt/server.crt"
    
    #<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>
    
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory "C:/xampp/apache/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>
    
    BrowserMatch "MSIE [2-5]" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0
    
    CustomLog "C:/xampp/apache/logs/ssl_request.log" \
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    
    </VirtualHost>     
    
  4. 修改配置文件中相关项,并保存 ServerName #主域名,务必修改 DocumentRoot #网站路径,务必填写网站实际路径,例如:C:/xampp/htdocs/wordpress SSLCertificateFile #证书File,务必填写网站实际路径 SSLCertificateKeyFile #证书KeyFile,务必填写网站实际路径 SSLCertificateChainFile #证书ChainFile,务必填写网站实际路径 注意:证书的后缀一般是:.crt或者 .pem,私钥的后缀是:.key

  5. 重启Apache服务

证书FAQ

证书的申请注意事项:

  • 免费证书只能用于明细域名,例如: buy.example.com,或next.buy.example.com,
  • example.com是通配符域名方式,不能用于申请免费证书
  • 申请证书的时候,请先解析好域名,有些证书会绑定域名对应的IP地址,即一旦申请后,IP地址不能更换,否则证书不可用