apache配置https

参考url

https://blog.csdn.net/ithomer/article/details/50433363
https://www.centos.bz/2018/01/apache-%E5%BC%BA%E5%88%B6-http-%E5%85%A8%E9%83%A8%E8%B7%B3%E8%BD%AC%E5%88%B0-https/

大体做法

  1. 生成csr,key,crt
  2. 改apache配置
  3. 改.htaccess强制所有http访问转到https

详细做法

生成ssl必须的csr,key,crt

假设CentOS已经安装了Apache Web服务器。我们需要使用OpenSSL生成自签名证书。如果尚未安装OpenSSL,它可以使用yum来安装。

# yum install mod_ssl openssl

首先,生成2048位的加密私钥

# openssl genrsa -out server.key 2048

然后,生成证书签名请求(CSR),这里需要填写许多信息,如国家,省市,公司等

# openssl req -new -key server.key -out server.csr

最后,生成类型为X509的自签名证书。有效期设置3650天,即有效期为10年

# openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

在生成csr,key这个步骤,可以使用这个url
https://myssl.com/csr_create.html

改apache配置

  1. 打开
    LoadModule ssl_module modules/mod_ssl.so
  2. 打开 Include conf/extra/httpd-ssl.conf
  3. 关闭 Include conf/extra/httpd-ahssl.conf
  4. 在httpdd-ssl.conf内
    default:443>的选项
    将key,crt的路径修改
SSLCertificateKeyFile "${SRVROOT}/conf/SSL.KEY"
SSLCertificateFile "${SRVROOT}/conf/SSL.CRT"

别忘了修改 DocumentRoot "${SRVROOT}/htdocs/xxx"

  1. 注意防火墙打开443端口

改.htaccess强制所有http访问转到https

网站根目录下面的.htaccess文件


   RewriteEngine on
   RewriteBase /
   RewriteCond %{SERVER_PORT} !^443$
   RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]

注意 要修改httpd.conf中



    AllowOverride None  

这里的None要改为All

你可能感兴趣的:(apache配置https)