ubuntu 14.04 下 apache2.4 配置SSL

因业务需求,需要给域名配置SSL加密,从IT部门获取.cert和.key文件后,就开始配置了.

1. 查找apache的ssl模块

ubuntu下,apache的默认模块目录是 /usr/lib/apache2/modules/

$ cd /usr/lib/apache2/modules/
$ ls

确认有"mod_ssl.so"模块后,我们到apache的配置目录,默认是 /etc/apache2

$ cd /etc/apache2
$ ls

找到 apache2.conf

2. 增加mod_ssl.so依赖

$ vim apache2.conf

在最后一行加上

LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so

保存,退出

3. HTTP的访问配置

打开 sites-enabled/000-default.conf

$ vim sites-enabled/000-default.conf

修改内容如下:


    ServerName: safe.example.com #(要绑定的域名)
    Options FollowSymLinks
    # 自动将80端口的访问,重定向到https的域名
    Redirect permanent / https://safe.example.com
    
    # 也可以使用IF-ELSE条件选择来禁止IP访问:
    # 
    #     Redirect permanent / https://safe.example.com/
    # 
    # 
    #     Order allow,deny
    #     Deny from all
    # 
    # 详情参见: https://httpd.apache.org/docs/2.4/expr.html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

4. HTTPS的访问配置

打开 ports.conf

$ vim ports.conf

原内容:

Listen 80


        Listen 443

修改内容如下:


        Listen 443
        
            # 此处为网站根目录
            DocumentRoot /var/www/html

            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined

            SSLEngine On
            # 证书文件的路径(需要自己申请,或找IT部门的同事要)
            SSLCertificateFile "./SSL_Cert/safe.example.com.cert"
            # key文件的路径(需要自己申请,或找IT部门的同事要)
            SSLCertificateKeyFile "./SSL_Cert/safe.example.com.key"
        

5.启用服务

$ apachectl configtest # 检查apache配置是否正确
$ sudo service apache2 reload # 检查配置正确后,重新加载配置
$ sudo a2enmod ssl # 启用SSL服务
$ sudo service apache2 restart #重启apache

禁用SSL服务是

$ sudo a2dismod ssl

6. 完成

如果配置正确,那么访问:

  1. http://safe.example.com
  2. https://safe.example.com
  3. safe.example.com

都会重定向到 https://safe.example.com

7. 参考资料

  1. Expressions in Apache HTTP Server - Apache HTTP Server Version 2.4
  2. Access Control - Apache HTTP Server Version 2.4
  3. Apache禁止IP直接访问,只允许域名访问
  4. Apache配置HTTPS访问

你可能感兴趣的:(ubuntu 14.04 下 apache2.4 配置SSL)