用户工具

站点工具


分享:技术:apache:apache配置https

Apache2配置https

准备https证书

  1. 自己生成
  2. 购买
  3. 从阿里云免费领取一个:我是采用这种

阿里云证书:214585382500153.key,public.pem

参考链接:https://ninghao.net/blog/4449

开启SSL模块

sudo a2enmod ssl

启用SSL站点

sudo a2ensite default-ssl

加入监听端口

sudo vim /etc/apache2/ports.conf
######
Listen 80 443 //编辑Apache端口配置,加入443端口(HTTPS采用的443端口传输数据)
######

配置SSL证书

在ServerAdmin下另起一行加上ServerName 你的域名:443,

并找到SSLEngine,SSLCertificateFile,SSLCertificateKeyFile并修改成如下:

sudo vim /etc/apache2/sites-available/default-ssl.conf
<IfModule mod_ssl.c>

<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName 127.0.1.1:443
DocumentRoot /var/www/html

SSLEngine on

SSLCertificateFile /etc/apache2/cert/public.pem
SSLCertificateKeyFile /etc/apache2/cert/214585382500153.key

配置 HTTPS 强制跳转

sudo vim  /etc/apache2/sites-available/000-default.conf

在<VirtualHost *:80></VirtualHost>标签内随便一个地方加入以下三行,如在最后加入

<VirtualHost *:80>
...	
...
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>

使配置生效

启动 rewrite mod

sudo a2enmod rewrite

重启 apache

sudo /etc/init.d/apache2 restart

配置结束。不出意外配置应该已经生效。

访问测试

访问http跳转到https

跳转规则配置

配置http不自动跳转到https,修改文件

/etc/apache2/sites-available/000-default.conf
RewriteEngine on
#不强制http转https
#RewriteCond %{HTTPS} !=on
#RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
分享/技术/apache/apache配置https.txt · 最后更改: 2018/04/09 15:51 由 gxx