在Apache服务器上安装SSL证书
前提是你先买好证书,下载下来,证书压缩包打开共有3个文件
- 证书文件:以.crt为后缀或文件类型。
- 证书链文件:以.crt为后缀或文件类型。
- 密钥文件:以.key为后缀或文件类型。
在apache安装目录中新建cert目录,并将解压的apache证书、 证书链文件和密钥文件拷贝到cert目录中。
如果需要安装多个证书,需在apache目录中新建对应数量的cert目录,用于存放不同的证书 。
如果申请证书时选择了手动创建csr文件,请将手动生成创建的密钥文件拷贝到cert目录中并命名为domain name.key。
在apache安装目录下,打开apache/conf/httpd.conf文件,并找到以下参数,按照下文中注释内容进行配置
#loadmodule ssl_module modules/mod_ssl.so #删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用ssl服务,apache默认是不启用该模块的。如果找不到该配置,请重新编译mod_ssl模块。 #include conf/extra/httpd-ssl.conf #删除行首的配置语句注释符号“#”。
存httpd.conf文件并退出
打开apache/conf/extra/httpd-ssl.conf文件并找到以下参数,按照下文中注释内容进行配置。
证书路径建议使用绝对路径。
根据操作系统的不同,http-ssl.conf文件也可能存放在conf.d/ssl.conf目录中。
<virtualhost *:443> servername #修改为申请证书时绑定的域名www.yourdomainname1.com。 documentroot "d:/phpstudy/www/yg" sslengine on sslprotocol all -sslv2 -sslv3 # 添加ssl协议支持协议,去掉不安全的协议。 sslciphersuite high:!rc4:!md5:!anull:!enull:!null:!dh:!edh:!exp:+medium # 修改加密套件。 sslhonorcipherorder on sslcertificatefile "d:/phpstudy/apache/cert/2335105__yg1st.com_public.crt" # 将domain name1_public.crt替换成您证书文件名。 sslcertificatekeyfile "d:/phpstudy/apache/cert/2335105__yg1st.com.key" # 将domain name1.key替换成您证书的密钥文件名。 sslcertificatechainfile "d:/phpstudy/apache/cert/2335105__yg1st.com_chain.crt" # 将domain name1_chain.crt替换成您证书的密钥文件名;证书链开头如果有#字符,请删除。 </virtualhost> #如果证书包含多个域名,复制以上参数,并将servername替换成第二个域名。 <virtualhost *:443> servername #修改为申请证书时绑定的第二个域名www.yourdomainname2.com。 documentroot "d:/phpstudy/www/yg" sslengine on sslprotocol all -sslv2 -sslv3 # 添加ssl协议支持协议,去掉不安全的协议。 sslciphersuite high:!rc4:!md5:!anull:!enull:!null:!dh:!edh:!exp:+medium # 修改加密套件。 sslhonorcipherorder on sslcertificatefile "d:/phpstudy/apache/cert/2335105__yg1st.com_public.crt" # 将domain name2替换成您申请证书时的第二个域名。 sslcertificatekeyfile "d:/phpstudy/apache/cert/2335105__yg1st.com.key" # 将domain name2替换成您申请证书时的第二个域名。 sslcertificatechainfile "d:/phpstudy/apache/cert/2335105__yg1st.com_chain.crt" # 将domain name2替换成您申请证书时的第二个域名;证书链开头如果有#字符,请删除。 </virtualhost>
改完之后,注意这文件里有一些关于logs文件的,路径一定要改对,根据实际路径来
比如我的就是:
errorlog "d:\phpstudy\apache\logs\error.log" transferlog "d:\phpstudy\apache\logs\access.log"
改完之后打开cmd
进入你的apache安装目录的bin目录下
使用:httpd -t
测试,如果有报错就根据提示信息修改;没有报错则重启apache即可
网站成功安装证书,可以用https打开
这样做完的结果是,用https可以打开,但是http开头的还是打不开
还需要设置让http开头的网站自动跳转到https开头
在httpd.conf的<directory>标签内,键入以下内容
rewriteengine on rewritecond %{server_port} !^443$ rewriterule ^(.*)?$ https://%{server_name}/$1 [l,r=301]
当然我的不完全是这样,因为我有设置别的伪静态规则,因此做了一些调整
证书安装完成之后,发现在谷歌浏览器里左上角有个提示,点开显示网站连接并非完全安全
原因是我们的页面存在一些不安全的http请求,比如图片、js等静态文件。
我们只需要将其升级为https请求即可。
页面的head中加入:
<meta http-equiv="content-security-policy" content="upgrade-insecure-requests">
意思是自动将http的不安全请求升级为https
添加之后,谷歌浏览器显示“链接是安全的”
下一篇: 抖音自媒体怎么做(个人自媒体起步知识)