Ubuntu Apache2配置SSL证书

举报
沃通WoTrus 发表于 2021/11/24 15:08:22 2021/11/24
【摘要】 一、Ubuntu下的Apache21. 安装Apache2sudo apt-get install apache2– 默认站点在 /var/www/– 配置文件在 /etc/apache2/– 日志在 /var/log/apache/– 启动脚本是 /etc/init.d/apache22. etc/apache2下的文件夹与文件apache2.conf:Apache的主要配置文件,包含全局...

一、Ubuntu下的Apache2

1. 安装Apache2

sudo apt-get install apache2

– 默认站点在 /var/www/

– 配置文件在 /etc/apache2/

– 日志在 /var/log/apache/

– 启动脚本是 /etc/init.d/apache2

2. etc/apache2下的文件夹与文件

apache2.conf:Apache的主要配置文件,包含全局配置。

envvars:Apache2环境变量设置。

ports.conf:配置Apache监听的端口。

mods-available:这个目录包含模块和模块配置文件,不是所有的模块都有配置文件。

mods-enabled:持有/etc/apache2/mods-available目录下文件的链接,当该目录下有一个模块文件和其配置文件,那么Apache重启后该模块将生效。

sites-available:这个目录包含Apache虚拟主机的配置文件。虚拟主机允许Apache配置多个站点并为每个站点配置不同的参数。后面下面配置的时候会配置80端口的http重定向为443的https。

sites-enabled:持有/etc/apache2/sites-available目录下文件的链接。当Apache重启后,该目录中包含的站点将会被激活。

3.ssl配置

安装openssl

sudo apt-get install openssl

开启ssl模块

sudo a2enmod ssl

无效则输入下面两个命令

sudo ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load

sudo ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf

下载证书会有3个文件

1_root_bundle.crt

2_xxx.crt

3_xxx.key

二、配置HTTPS(SSL)

1.进入/etc/apache2/ports.conf

查看是否有

Listen 80

Listen 443

没有就添加上去

2.配置ssl虚拟站点

上文安装完后,会在/etc/apache2/sites-available/目录下生成一个缺省的default-ssl文件。缺省的网页目录仍然是/var/www/。我们可以创建一个链接到site-enabled目录。

sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl

如果不想用软链接,可以从sites-available中复制default-ssl.conf到sites-enabled(表示启用的配置),然后修改default-ssl.conf

SSLCertificateFile

SSLCertificateKeyFile

SSLCertificateChainFile

配置为

SSLCertificateFile 证书地址/2_xxx.crt

SSLCertificateKeyFile 证书地址/3_xxx.key

SSLCertificateChainFile 证书地址/1_root_bundle.crt

重启apache,应该已经可以访问https了

sudo service apache2 restart

三、设置http重定向为https

1.启动重定向

启动 rewrite mod

sudo a2enmod rewrite

或者

sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

2.设置http端口重定向

打开 /etc/apache2/sites-available/000-default.conf ,

在 <\VirtualHost *:80><\VirtualHost> 标签内随便一个地方加入以下三行

RewriteEngine on

RewriteCond %{HTTPS} !=on

RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R=301]

或者在网站目录处新建.htaccess 输入

RewriteEngine on

RewriteBase /

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^.* https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

3.最后重启

sudo service apache2 restart

最后如果使用CMS或Wordpress系统,网站后台设置,网址区域全部改成HTTPS地址,重新清除缓存生成。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。