记录Apche环境下手动配置和部署SSL证书的图文教程

talklee

温馨提示:这篇文章已超过765天没有更新,请注意相关的内容是否还可用!

网上类似的教程很多,那我什么还要重新再写一篇呢?仅为记录,并非什么技术教程,因为我发现在网上找到的教程在我本地服务器不好使,之所以是手动配置是因为服务器并未安装第三方控制面板,本文仅作为在 Apache 服务器中安装 SSL 证书的记录,仅供参考。

记录Apche环境下手动配置和部署SSL证书的图文教程 第1张

首先去申请SSL证书,这个就不写了,百度以下很多也可以参考本站之前发布的一篇文章《利用青云免费申请 Let's Encrypt 泛域名SSL证书》,申请之后我们下载到本地,部分服务商看你会给出具体环境所需类型,例如腾讯云:

记录Apche环境下手动配置和部署SSL证书的图文教程 第2张

根据实际情况去下载,比如本次测试的apache环境,当然还有可能证书直接就是“证书和密钥”两个文件,例如上段提到的青云主机就酱婶的。

记录Apche环境下手动配置和部署SSL证书的图文教程 第3张

好了,证书下载完成后上传到服务器,目录需要记住,一会要用到,比如我把证书放在“/alidata/SSL/”目录下,接下来就可以配置相关文件了。在服务器端开启443端口,对应防火墙也需要开通,接下来找到网站配置文件,这个根据实际情况而定,以我本机为例“/usr/local/apache/conf/vhost/”,使用FTP或者SVN找到站点对应的文件,ssl.talklee.com.conf 文件,编辑,如图:

记录Apche环境下手动配置和部署SSL证书的图文教程 第4张

配置文件是自动生成的,默认只有80端口,其他信息不用,我们在最后一行附上443也就是ssl证书配置代码:

<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结束之间的两行注释(前面加#)或者删除,然后把下面的代码粘贴,注意修改证书实际的路径:

#证书文件的路径 
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端口的配置文件后加上此段代码:

    #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

效果如图:

记录Apche环境下手动配置和部署SSL证书的图文教程 第5张

保存文件上传至服务器即可,配置文件需要重启才能生效,我们可以选择重启服务器或者重启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配置文件跟我在网上找的配置文件对比之后发现少了一段代码,如图:

记录Apche环境下手动配置和部署SSL证书的图文教程 第6张

是的,就是这个代码,其实这段代码在80端口已经存在了,不知道为什么还需要重写一遍,这就是导致开启ssl无法访问的原因所在,把代码粘贴到配置文件后果然可以访问了,好吧,不管是什么原因吧,总之目前来说已经解决了燃眉之急,记录到此告于段落,记住修改配置文件记得备份,配置文件尤为重要错了一点就可能导致网站无法访问。欢迎各位大佬对此文给予指导斧正!!!

文章版权声明:除非注明,否则均为李洋个人博客原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (有 2 条评论,9117人围观)
网友昵称:明月登楼
明月登楼 V 游客 Google Chrome 99.0.4844.51 Windows 10 x64 沙发
2022-03-17 来自上海 回复
WEB端申请证书倒是推荐可以试试ZeroSSL!
网友昵称:talklee
talklee V 博主 Sogou Explorer Windows 7 x64
2022-03-19 来自上海 回复
@明月登楼 好嘞,有时间去试试。

目录[+]