SSL证书
要配置HTTPS前期工作需要下载个证书,正常情况在阿里云或者腾讯云购买域名的时候可以在免费购买个SSL证书,下载下来有4个文件夹可以根据自己的服务器选择对应的key和crt.
这次所讲的是ngnix下配置https因此我们选择nginx文件夹下的两个文件,上传到服务器的某个位置,这里以网站根目录为例。
上菜
前期工作就不多说了LNMP环境搭建个,找到nginx.conf,路径在
usr/local/nginx/conf/nginx.conf
拉倒最底部可以看到有
include vhost/*.conf
这时候我们可以找到vhost文件夹在此文件下新建一个.conf为后缀的配置文件
关键的来了
server {
listen 443 ssl;
server_name you domain name; #填写绑定证书的域名 例如www.baidu.com
ssl_certificate nuisan /home/wwwroot/default/www.baidu.com.net.crt ; # 指定证书的位置,绝对路径
ssl_certificate_key /home/wwwroot/default/www.baidu.com.net.key; # 绝对路径,同上
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
root /home/wwwroot/default/; #站点目录,绝对路径
index index.html index.php;
}
location ~ .*\.php$ {
root /home/wwwroot/default; ##网站根目录位置
fastcgi_pass unix:/tmp/php-cgi.sock; ##出现502 报错主要确定这个文件的存储位置在哪
# fastcgi_pass 127.0.0.1:9000; ##开启这个会出现502报错
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
注意
以上需要注意的是
- server_name 填写绑定证书的域名
- ssl_certificate nuisan 指定证书的位置,绝对路径
- ssl_certificate_key 指定证书的位置,绝对路径
- location /{
root /home/wwwroot/default; 网站目录
}
location ~ .*.php$ {
root /home/wwwroot/default; 网站目录
}
执行PHP代码
location ~ .*.php$ 这段要是不加上去是无法执行PHP代码的,会变成下载文件,无法编译PHP代码,如果仅需要执行html文件,就不想要加入此段配置