网上类似的教程很多,那我什么还要重新再写一篇呢?仅为记录,并非什么技术教程,因为我发现在网上找到的教程在我本地服务器不好使,之所以是手动配置是因为服务器并未安装第三方控制面板,本文仅作为在 Apache 服务器中安装 SSL 证书的记录,仅供参考。
首先去申请SSL证书,这个就不写了,百度以下很多也可以参考本站之前发布的一篇文章《利用青云免费申请 Let's Encrypt 泛域名SSL证书》,申请之后我们下载到本地,部分服务商看你会给出具体环境所需类型,例如腾讯云:
根据实际情况去下载,比如本次测试的apache环境,当然还有可能证书直接就是“证书和密钥”两个文件,例如上段提到的青云主机就酱婶的。
好了,证书下载完成后上传到服务器,目录需要记住,一会要用到,比如我把证书放在“/alidata/SSL/”目录下,接下来就可以配置相关文件了。在服务器端开启443端口,对应防火墙也需要开通,接下来找到网站配置文件,这个根据实际情况而定,以我本机为例“/usr/local/apache/conf/vhost/”,使用FTP或者SVN找到站点对应的文件,ssl.talklee.com.conf 文件,编辑,如图:
配置文件是自动生成的,默认只有80端口,其他信息不用,我们在最后一行附上443也就是ssl证书配置代码:
代码语言:javascript复制<VirtualHost *:443>
ServerAdmin webmaster@talklee.com
DocumentRoot "/alidata/www/newdisk/talklee/" #网站目录
ServerAlias ssl.talklee.com #网站域名
#SSL
SSLEngine On
#证书pem格式开始
SSLCertificateFile /alidata/SSL/ssl.talklee.com.pem #仅限pem格式
SSLCertificateKeyFile /alidata/SSL'ssl.talklee.com.key #仅限pem格式
#证书pem格式结束
SSLCipherSuite EECDH AESGCM:EDH AESGCM:AES256 EECDH:AES256 EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
#PATH
<Directory "/alidata/www/newdisk/talklee/">
Options FollowSymLinks ExecCGI
AllowOverride All
Require all granted
DirectoryIndex index.php default.php index.html index.htm default.html default.htm
</Directory>
</VirtualHost>
复制附上代码,把对应的网站目录、域名及证书的路径地址修改成您自己的,如果您的证书是腾讯云或者阿里云下载的,可能会是crt格式,那么就把pem开始和pem结束之间的两行注释(前面加#)或者删除,然后把下面的代码粘贴,注意修改证书实际的路径:
代码语言:javascript复制#证书文件的路径
SSLCertificateFile /alidata/SSL/ssl.talklee.com.crt
#私钥文件的路径
SSLCertificateKeyFile /alidata/SSL/ssl.talklee.com.key
#证书链文件的路径
SSLCertificateChainFile /alidata/SSL/root_bundle.crt
明确证书是哪种类型,基本都是crt格式的,也就是腾讯和阿里申请的,那么直接使用如上代码即可。至此网站的ssl设置完成,如果需要设置HTTP自动跳转HTTPS的需要在80端口的配置文件后加上此段代码:
代码语言:javascript复制 #HTTP_TO_HTTPS_START
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}$1 [L,R=301]
</IfModule>
#HTTP_TO_HTTPS_END
效果如图:
保存文件上传至服务器即可,配置文件需要重启才能生效,我们可以选择重启服务器或者重启apache,使用SSH或者其他登录软件,在终端输入重启apache配置文件代码“service httpd restart”,等待重启完成打开网站会自动跳转的https访问。
我对linux界面并不熟悉,这个443(https)的配置文件来源宝塔apache配置文件下,为什么呢?因为我之前使用网上的教程打开之后网页会显示“You don't have permission to access /aal.talklee.com on this server.”百度之后发现是没有权限,可是,文件已经设置755了,确定没有问题,然后我找到一台测试机安装了宝塔,都配置完成后,把ssl配置文件跟我在网上找的配置文件对比之后发现少了一段代码,如图:
是的,就是这个代码,其实这段代码在80端口已经存在了,不知道为什么还需要重写一遍,这就是导致开启ssl无法访问的原因所在,把代码粘贴到配置文件后果然可以访问了,好吧,不管是什么原因吧,总之目前来说已经解决了燃眉之急,记录到此告于段落,记住修改配置文件记得备份,配置文件尤为重要错了一点就可能导致网站无法访问。欢迎各位大佬对此文给予指导斧正!!!