HTTP to HTTPS

申请证书

通过 ISP 申请 / 购买 SSL 证书

安装 SSL (Apache ONLY)

如果你的Apache中没有SSL模块,你需要按照如下的步骤安装SSL Module

安装 Apache 的 SSL 模块:

# yum install -y mod_ssl

重启 Apache:

# service httpd restart

安装 openssl:

# yum install openssl

下载证书

将发放下来的证书下载到服务器上,解压并放置在一个你喜欢的文件夹里

假设主网站域名证书放在 /usr/local/apache/your_main_site
子网站域名证书放在 /usr/local/apache/your_sub_site

修改 Apache 配置文件

# vim /etc/httpd/conf.d/ssl.conf

ssl.conf:

Listen 443
 # 多域名的重写需要
 NameVirtualHost *:443
# (一些SSL的默认设置,不用改)

<VirtualHost *:443>
DocumentRoot "/var/www/html/your_main_site"
ServerName your_main_site.com
SSLEngine on
SSLCertificateFile /usr/local/apache/your_main_site/2_your_main_site.com.crt
SSLCertificateKeyFile /usr/local/apache/your_main_site/3_your_main_site.com.key
SSLCertificateChainFile /usr/local/apache/your_main_site/1_root_bundle.crt
</VirtualHost>

<VirtualHost *:443>
DocumentRoot "/var/www/html/your_sub_site"
ServerName sub.your_main_site.com
SSLEngine on
SSLCertificateFile /usr/local/apache/your_sub_site/sub.your_main_site.com.crt
SSLCertificateKeyFile /usr/local/apache/your_sub_site/sub.your_main_site.com.key
SSLCertificateChainFile /usr/local/apache/your_sub_site/1_root_bundle.crt
</VirtualHost>

设置 HTTP 的端口转发成 HTTPS

假设你的主网站目录为/var/www/html/your_main_site
子网站目录为 /var/www/html/your_sub_site

打开 Rewrite 模块

# vim /etc/httpd/conf/httpd.conf

在 httpd.conf 中打开 rewrite_module

LoadMoudle rewrite_module modules/mod_rewrite.so

 

httpd.conf最后加上

RewriteEngine On
 # 对80端口的请求进行转发
 RewriteCond %{SERVER_PORT} 80
 # 只转发特定目录的请求
 RewriteRule /your_main_site https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
 RewriteRule /your_sub_site https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

注意你的 DocumentRoot 的目录
此例中的 DocumentRoot/var/www/html

若你需要转发所有的HTTP请求为HTTPS, 可以直接写 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] (若网站 SSL 证书为 WildCard ,推荐使用。否则很容易使访问出现错误)

最后,重启Apache服务即可
service httpd restart

使用Chrome/Firefox访问一下你的网站,网址栏处是不是出现了一把绿色的小锁?


如果有,那么恭喜你,你的网站已进入HTTPS的世界了 🙂

    分享到:
分类: Web Dev

发表评论

电子邮件地址不会被公开。 必填项已用*标注

验证码 *