• 青蛙学Linux—Apache提供HTTPS服务


    关于HTTPS及SSL证书的知识可参考https://www.cnblogs.com/yu2006070-01/p/10233470.html

    实验环境:

    • 操作系统CentOS 7.6.1810,IP地址为192.168.0.110
    • Apache版本2.4.38,安装路径为/usr/local/httpd
    • 证书文件放置在Apache安装目录下的keys目录(新建)
    • 证书对应域名为www.abc.com
    • 虚拟主机域名为www.abc.com,网站根目录为/data/www.abc.com

    1、使用OpenSSL生成证书文件

    网站部署HTTPS需要.crt和.key两个证书文件,这里直接通过OpenSSL生成这两个证书文件:

    [root@localhost keys]# openssl req -new -newkey rsa:2048 -sha256 -nodes -x509 -days 365 -out abc.crt -keyout abc.key -subj '/C=CN/ST=fujian/L=fuzhou/O=abc Inc./OU=Web/CN=abc.com'

    命令运行完成后将会在当前目录下生成abc.crt和abc.key两个证书文件。

    2、Apache配置HTTPS

    2.1、打开SSL模块

    在Apache主配置文件httpd.conf中找到以下配置并取消注释:

    LoadModule ssl_module modules/mod_ssl.so

    2.2、配置SSL

    SSL配置文件为Apache的子配置文件httpd-ssl.conf,所以需要在住配置文件httpd.conf中Include进来:

    # 取消以下配置的注释
    Include conf/extra/httpd-ssl.conf

    在httpd-ssl.conf中修改以下配置:

    # 修改加密套件
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4
    SSLProxyCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4
    
    # 添加SSL协议,如果无需兼容老的应用可以取消SSLv3
    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    SSLProxyProtocol all -SSLv3 -TLSv1 -TLSv1.1

    2.3、配置基于HTTPS的虚拟主机

    注意:基于HTTPS的虚拟主机也是在httpd-ssl.conf文件中进行配置,而不是httpd-vhost.conf文件。

    虚拟主机部分主要配置内容如下:

    <VirtualHost _default_:443>
    DocumentRoot "/data/www.abc.com"
    ServerName www.abc.com:443
    ServerAdmin xxx
    ErrorLog "/usr/local/httpd/logs/ssl_abc.com_error_log"
    TransferLog "/usr/local/httpd/logs/ssl_abc.com_access_log"
    SSLEngine on
    SSLCertificateFile "/usr/local/httpd/keys/abc.crt"
    SSLCertificateKeyFile "/usr/local/httpd/keys/abc.key"
    CustomLog "/usr/local/httpd/logs/ssl_abc.com_request_log" 
              "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
    <Directory "/data/www.abc.com">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
    </VirtualHost>

    2.4、报错解决

    完成以上配置后,重启Apache,遇到以下错误:

    AH00526: Syntax error on line 92 of /usr/local/httpd/conf/extra/httpd-ssl.conf:
    SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).

    此时修改Apache主配置文件httpd.conf,取消以下配置的注释:

    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

    修改完成后Apache即可正常启动。

    2.5、验证配置

    在虚拟主机www.abc.com的根目录/data/www.abc.com下有一个名为index.html的文件,内容如下:

    <h3>SSL it works!</h3>

    此时访问https://www.abc.com:

    7

    出现了证书警告,这是因为.crt证书是通过OpenSSL生成的,并没有经过权威CA认证,所以会被ESET认为是不受信任的证书,点击允许并在火狐中设置例外后即可看到如下页面:

    8

    说明HTTPS配置成功。

  • 相关阅读:
    使用cmd命令行窗口操作SqlServer
    .net core compatibility windows & windows compatible Linux
    Microsoft Azure Tutorial: Build your first movie inventory web app with just a few lines of code
    Running ASP.NET Core applications on Windows Subsystem for Linux
    Simple Use IEnumerable<T>
    JSON in SQL Server 2016
    [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
    NotBacon
    Create an Azure SQL database in the Azure portal
    Cisco IP 电话 将它的voice mail 发送到手机
  • 原文地址:https://www.cnblogs.com/yu2006070-01/p/10320153.html
Copyright © 2020-2023  润新知