apache或nginx配置ssl,让它们可以https访问。
首先,你要有一个ssl证书,可以收费的,也可以免费的,比如let's encrypt。
推荐freessl.org,它集合了多个证书申请入口,简化你的操作。
在这里不再赘述,我相信大家都会申请。

apache开启ssl访问
可能需要执行a2enmod ssl

在你需要的虚拟主机网站配置文件里加上这几句
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/mzyq.com/full_chain.pem #证书
SSLCertificateKeyFile /etc/apache2/ssl/mzyq.com/private.key #私钥

然后把证书和私钥拷贝到上述位置。
检查apachectl配置文件是否正确: apachectl configtest
重启apache systemctl restart apache2

如何让http自动跳转https
第一种:
修改虚拟主机配置里的
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
这个意思是如果不是443端口,就统统转到https。

还可以这样
RewriteEngine on
RewriteRule (.*) https://%{SERVER_NAME}$1 [R]
这个就更简单了。

第二种就是在网站根目录下的.htaccess加入(没有这个文件可以自行建立)
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
这样也能跳转。
如果没有开通.htaccess支持就点这里 //www.mzyq.com/a/74.html
注意:apache 默认主机如果没有配置ssl,访问https,有默认页面仍显示Forbidden。

nginx开启ssl访问
在你需要的虚拟主机网站配置文件里加上这几句
在server{}里加上
listen 443 ssl;
server_name mzyq.com;
ssl on;
ssl_certificate /etc/nginx/ssl/mzyq.com/full_chain.pem;
ssl_certificate_key /etc/nginx/ssl/mzyq.com/private.key;

然后把证书和私钥拷贝到上述位置。

证书或者私钥可能不是上述的full_chain.pem或private.key的文件名,这个需要自己变通。
路径也是可以自己定义的。
nginx http自动跳转到https的话,要在conf文件里这么写两个server。
主要的server{} 监听443端口,按上面的去写。
再加一个server{}监听80端口。跳转到https就好了。千万不能把两个server混在一起写,否则会无限重定向。
server {

listen  80;  
server_name www.mzyq.com; 
rewrite ^(.*)$  https://$host$1 permanent;  

}

关键词:如何配置ssl,apache配置ssl,nginx配置ssl,开启https访问,证书部署

标签: none

添加新评论