想给服务器安装个ssl证书,折腾了小半天,终于搞好了,不过也是踩了坑的。现在分享出来给大家。
我下载的是数安时代的免费证书https://certmall.trustauth.cn/Free,也有问题,浏览器可用,但是手机上还是会提示证书安全问题。
填好申请域名及相应的信息后,下载他们的csr生成器,长这样
点击创建csr后,申请,会生成.csr文件和.key文件,然后将生成的csr粘贴到网页中相对应的位置,
然后一步步申请,最后将申请好的证书下载下来
这下你就有三个文件了,一个是.csr一个是.key还有就是下载下来的证书,将证书和私钥放在服务器相应的文件夹下,然后配置站点
server {
listen 80;
server_name 域名;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl;
server_name 域名;
ssl on;
ssl_certificate /etc/nginx/vhost/aaa.crt; #证书公钥位置
ssl_certificate_key /etc/nginx/vhost/aaa.key; #证书私钥位置
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!3DES:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
root 目录;
index index.php index.html index.htm;
location / {
# 这里使用try_files进行url重写,不用rewrite了。
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php($|/) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
申请过程中,注意生成的私钥只有第一次和证书是唯一对应的,其余的都是不对应的。只有重新申请!