前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apache配置ssl支持https

Apache配置ssl支持https

作者头像
mythsman
发布2022-11-14 16:20:04
1.4K0
发布2022-11-14 16:20:04
举报

前言

很明显apache原生是不支持https的,无论是用https访问自身的站点,还是代理来自其他网站的https的站点。毕竟人家https走的端口是443,都不是默认的80。

那么如何让apache支持https呢,其实只要添加下ssl模块再修改下配置就好了。

准备工作

首先要导入apache的ssl模块,即$sudo a2enmod ssl ,保证/etc/apache2/mods-enabled/ 目录下有对应的ssl模块文件。

然后利用openssl命令,生成必要的密钥文件等:

代码语言:javascript
复制
【生成一个自签名证书】
$ openssl genrsa -out ca.key 2048

【生成证书签名请求(CSR)】
$ openssl req -new -key ca.key -out ca.csr

【生成X509自签名证书】
$ openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

三条命令各生成三个文件,把这三个文件保存好,这里我把他全部放在了/etc/apache2/key文件夹下了。

配置https正向代理

对于https的正向代理,在http的正向代理配置的基础上,只要额外添加下面的配置即可:

代码语言:javascript
复制
SSLProxyEngine on
SSLCertificateFile /etc/apache2/key/ca.crt
SSLCertificateKeyFile /etc/apache2/key/ca.key

文件路径分别对应上面的密钥文件。

重启服务器即可代理https协议了。

配置https站点

我们知道对于通常的http站点,他的配置路径是在/etc/apache2/sites-enabled/000-default.conf上,但是我发现如果直接在这里配置https站点则会不起效果。一番捣鼓之后发现,其实为了区分http和https站点并加以分别配置,apache2还特地给了另外一份配置文件,这份配置文件的模板需要我们用下面的命令得到:

代码语言:javascript
复制
$ sudo a2ensite
Your choices are: 000-default default-ssl
Which site(s) do you want to enable (wildcards ok)?
default-ssl

之后我们就会发现,出现了一个/etc/apache2/sites-enabled/default-ssl.conf文件,没错,我们就可以在这里配置对应的站点了。 在这个配置文件里,主要是要修改四项:

代码语言:javascript
复制
DocumentRoot /var/www/html/wordpress
SSLEngine on
SSLCertificateFile  /etc/apache2/ssl/cert_chain.crt
SSLCertificateKeyFile /etc/apache2/ssl/private.key

修改好后,重启服务即可。 最后我们可以将利用htaccess文件将80端口的请求转发到443端口,这样更加漂亮。

关于证书

当然,我们自己生成的证书是不被浏览器认可的,通常访问的用户都会被告知这是一个不安全的链接,尤其是chrome,那个红色背景格外的吓人,因此如果是真的想让自己的网站能用https,要么去花钱买证书,要么去用人家免费的,我这里用的是sslforfree的证书,不过麻烦的是这个东西得每隔三个月更换一次。。。 具体的使用方法可以参考这篇文章

参考资料

CentOS中Apache服务器HTTPS配置方法 Apache + WordPress + SSL 完全指南 申请免费的SSL证书

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 准备工作
  • 配置https正向代理
  • 配置https站点
  • 关于证书
  • 参考资料
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档