因业务需求,需要给域名配置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
修改内容如下:
<VirtualHost *:80>
ServerName: safe.example.com #(要绑定的域名)
Options FollowSymLinks
# 自动将80端口的访问,重定向到https的域名
Redirect permanent / https://safe.example.com
# 也可以使用IF-ELSE条件选择来禁止IP访问:
# <If "%{HTTP_HOST} == 'safe.example.com'">
# Redirect permanent / https://safe.example.com/
# </If>
# <Else>
# Order allow,deny
# Deny from all
# </Else>
# 详情参见: https://httpd.apache.org/docs/2.4/expr.html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
4. HTTPS的访问配置
打开 ports.conf
$ vim ports.conf
原内容:
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
修改内容如下:
<IfModule ssl_module>
Listen 443
<VirtualHost _default_: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"
</VirtualHost>
</IfModule>
5.启用服务
$ apachectl configtest # 检查apache配置是否正确
$ sudo service apache2 reload # 检查配置正确后,重新加载配置
$ sudo a2enmod ssl # 启用SSL服务
$ sudo service apache2 restart #重启apache
禁用SSL服务是
$ sudo a2dismod ssl
6. 完成
如果配置正确,那么访问:
- http://safe.example.com
- https://safe.example.com
- safe.example.com
都会重定向到 https://safe.example.com
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。