Apache 配置ssl 实现https
1、申请免费的ssl
目前可以免费申请的ssl证书的有以下的服务商
A、腾讯云 (TrustAsia Technologies, Inc.) 可免费一年 (具体看官网的ssl产品)
B、阿里云 DigiCert Inc(具体看官网的ssl产品)
C、Let's Encrypt(免费3个月,可自动续期)
申请成功后,会得到以下这种文件
范例1:阿里云forapache
范例2:腾讯云for all(apache Nginx iis)
2、下面是Apache配置教程
2-1 apache conf 下创建ssl目录及站点目录用于存放证书某站点或域名的证书文件,比如D:/Apache/conf/ssl/kinmor-com
2-2 将以上注册成功后的证书文件上传到该目录下:
举例如:
D:/Apache/conf/ssl/kinmor-com/1_root_bundle.crt
D:/Apache/conf/ssl/kinmor-com/2_www.kinmor.com.crt
D:/Apache/conf/ssl/kinmor-com/3_www.kinmor.com.key
2-3 配置apache的http.conf,
A、把LoadModule ssl_module modules/mod_ssl.so前面的#注释去掉————启用ssl
B、把Include conf/extra/httpd-vhosts.conf前面的#注释也去掉————启用虚拟目录域名绑定。
C、在Include conf/extra/httpd-ssl.conf的位置,默认是带#注释的,为不影响使用,我另外创建一个vhostssl.conf文件放在apache/conf/extra/下,保存。看下图:
2-4 将以下代码贴到vhostssl.conf文件,具体的路径要进行修改,换成您的位置,保存
Listen 443
<VirtualHost *:443>
DocumentRoot "D:\www\www.kinmor.com"
ServerName www.kinmor.com
ServerAlias www.kinmor.com
SSLEngine on
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile "D:\Apache\conf\ssl\kinmor-com\public.pem"
SSLCertificateKeyFile "D:\Apache\conf\ssl\kinmor-com\214272553820512.key"
SSLCertificateChainFile "D:\Apache\conf\ssl\kinmor-com\chain.pem"
<Directory "D:\www\www.kinmor.com">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
说明:我的项目路径为D:wwwwww.kinmor.com\
2-5 重启Apache
3、测试.
浏览器输入:https://www.kinmor.com 看到下面表示测试成功。
4、重定向 http:\ ☞ https:\
在.htaccess文件中添加以下内容
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
下面粘贴thinkcmf下的.htacess文件
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>