记一次linux下apache配置https及重定向

配置https时需要ssl证书,证书获取方式现在也很多,就不多说。这次生成证书是用的github上的一个项目生成的,还是比较方便。传送门:点此进入

生成文件后需要移动文件到指定的目录,例如: /etc/httpd/ssl/ #ssl文件夹不存在,需要自己创建,也可以是其他名字,不要和系统文件名冲突即可。
移动cert文件 acme.sh --install-cert -d example.com
--cert-file /path/to/certfile/in/apache/cert.pem #cert.pem为自定义名字,
example.com为自己的域名,本地配置的域名也可
移动key文件 acme.sh --install-cert -d example.com --key-file /path/to/keyfile/in/apache/key.pem #key.pem为key文件
移动fullchain文件 acme.sh --install-cert -d example.com --fullchain-file /path/to/fullchain/certfile/apache/fullchain.cer

生成证书以后,配置httpd/conf.d/ssl.conf。开启两行文件:

SSLCertificateFile /etc/httpd/ssl/fullchain.cer #这是通过上述程序生成的fullchain.cer

SSLCertificateKeyFile /etc/httpd/ssl/xxx.com.key #这是上述生成的xx.key文件

下一步配置http-vhosts.conf

<VirtualHost *:80>
    ServerAdmin test.com  #自己的域名
    DocumentRoot "/var/www/pro" #修改为自己的项目路径
    ServerName test.com #自己的域名
    #HTTP_TO_HTTPS_START
    #301-START 开启重定向,将http重定向到https
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{SERVER_PORT} 80
        RewriteRule ^(.*)$ https://test.com/$1 [R=301,L]
    </IfModule>
</VirtualHost>
<VirtualHost *:443>
    ServerAdmin test.com
    DocumentRoot "/var/www/pro"
    ServerName test.com
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCertificateFile /etc/httpd/ssl/fullchain.cer
    SSLCertificateKeyFile /etc/httpd/ssl/test.com.key
</VirtualHost>

以上就配置完成了http到https。

注:rewrite模式需要开启modules/mod_rewrite.so

重启apache 使用不同方式安装apache可以使用不同的命令重启

service httpd reload

以上就是全部内容,有遗漏的后续再补充。

posted @ 2019-05-17 17:37  秋江月  阅读(451)  评论(0)    收藏  举报