肖峰博客-117-为Nginx配置 SSL 证书 + 搭建 HTTPS网站 但是我是用的阿里云的,与他的这种不同。也可以参考他这种配置
- 我此处是用
apache
服务器的配置举例,nginx
的更简单,在本文末尾有介绍 - 阿里云证书的位置:
产品
->安全(云盾)
->CA证书服务
点击链接
- 这些证书,我们通过官网申请,阿里云申请,七牛云申请都可以
ov型适合多域名的,ev型可以标注什么什么项目,什么网站
证书控制台,其实就是云盾
控制台
控制台
->云盾(安全)
->证书服务
链接
在服务器上操作
我们执行
apachectl configtest
的时候,如果报错是error
级别,必须解决,其他错误提示不解决也可以-
我们把刚才的那个报错,使用管道符查看下有没有在
mode-avaliable
里面,我们查看有,然后做一个软链接到mode-enable
里面就可以了
-
从阿里云把证书下载到本地之后,我们可以直接把整个文件上传到服务器上
在服务器上我们进入
ssl
目录后,会看到我们配置的站点,再进入站点后,在看里面的证书。因为证书其实是配置到相应的站点的;如果证书是通配符配置的,证书就不会配置到某个站点下了。但是我的证书是直接传到了ssl
文件里面,也可以使用
vi /etc/apache/mode-enable/ssl.conf
,里面的SSLProtocol
参数默认的是all
,但是这样设置会不安全,我们需要去掉一些不安全的协议和加密套件
vi /etc/apache2/sites-available/default-ssl.conf
,第一,我们需要添加主机名(这个主机名要和阿里云申请证书的域名匹配)。第二,我们需要修改证书的地址;第三,配置证书链。注意,default-ssl.conf
默认是没有软连接到mode-enable
里面的。我们设置好之后,需要做个软链接。注意,这个文件里面的站点目录还要和site-avaliablei里面域名对应的站点目录想对应
以上是apache
的配置,nginx
的配置是vi nginx.conf
,修改以下配置即可。官网链接
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/214022665520943.pem;
ssl_certificate_key cert/214022665520943.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
-
但其实我们的配置位置根本不是官网给的那样,我参考了文档,下面是我自己的配置
-
前提是我先把ssl的两个配置文件放在了
/etc/ssl/cert
里面,我们打开vi /etc/nginx/snippets/snakeoil.conf
文件看看
- 注意,此处的
.pem
,.key
要与我们下载的一致。此处是需要修改的
- 注意,此处的
设置http访问直接跳转到https
只需在80对应的
server
里面添加重写规则即可。rewrite ^(.*) https://$host$1 permanent;
参考
server {
listen 80 default_server;
server_name www.vipjianzhi.cn;
rewrite ^(.*) https://$host$1 permanent;
include snippets/snakeoil.conf;
root /var/www/jianzhi/public;
index index.html index.php index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
server {
listen 443 ssl default_server;
server_name www.vipjianzhi.cn;
include snippets/snakeoil.conf;
root /var/www/jianzhi/public;
index index.html index.php index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}