Apache配置https协议

首先你需要拥有SSL证书。我是使用的沃通免费SSL证书。当然也可以自签名,不过自签名的证书浏览器一般不认,只能做本地测试之用。

1. 生成自签名证书。

若是已有正规证书,直接跳到第2步。

执行命令

# openssl genrsa 1024 > server.key
# openssl genrsa 1024 -des3 > server.key
# openssl req -new -key server.key > server.csr

最后我们得到了 server.key 与 server.csr 两个证书文件,记下文件路径。

2. 修改httpd.conf文件。

分别去掉以下三行前面的注释:

LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf/extra/httpd-ssl.conf

3. 修改httpd-ssl.conf文件。

找到以下两行代码,配置证书和密钥的路径。

SSLCertificateFile /apache/conf/server.crt
SSLCertificateKeyFile /apache/conf/server.key 

找到

DocumentRoot "/data/www"
ServerName latrell.me:443

配置为证书签名的域名与对应的目录。

4. HTTP重定向到HTTPS。

配置你的虚拟机。

<VirtualHost *:80>
    DocumentRoot /data/www
    ServerName latrell.me
    ServerAlias www.latrell.me
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTP_USER_AGENT} !(spider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|robozilla|msnbot) [NC] #这里排除了对搜索引擎HTTPS的重定向
        RewriteCond %{HTTPS} !=on
        RewriteRule ^(.*) http://%{SERVER_NAME}$1 [R=301,L]
    </IfModule>
</VirtualHost>

重启Apache。

service httpd restart

大功告成。

发表评论