经常在群里看见一堆人对配置ssl证书还不熟悉,这个东西服务器系统不一样,环境不一样,方法也就不一样了。

这都不是重要的,重要的是很多人在网上找教程,比如找nginx的教程。

他看见教程里面提到修改nginx的配置文件,nginx.conf就行了。

但是他当前网站配置可能都不是nginx.conf在控制,然后他就说教程不对。。。

不是教程不对,是你自己服务器的配置不搭,也许你的网站配置是另外一个文件,另外一个文件夹下。

常规情况下:

比如服务器就一个域名网站,且配置文件就是nignx.conf,在/usr/local/nginx/conf目录下

那就在conf目录下创建个ssl文件夹,然后把域名的ssl文件上传到ssl文件夹里面去。

现在就来修改这个nginx.conf文件:

  listen 443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/ssl/证书文件;
  ssl_certificate_key /usr/local/nginx/conf/ssl/证书密钥;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;

把这段加到原来的: listen 80; 下面就行了。

如果还要强制跳转到https,再加上:

return      301 https://$server_name$request_uri;

加到 root /网站文件夹目录; 的上面或者下面都行,主要看你整体怎么配置的。

不常规的情况下:

当然不常规的情况很多很多很多,这里我就以一键脚本配置的环境说事。

不管你服务器几个域名网站,因为现在很多一键脚本在你创建网站的时候,都是单独分开写的。

比如网站域名为:jingxialai.com,那么网站配置文件应该就是jingxialai.com.conf

这个时候你还去配置nginx.conf肯定就不行了,除非你全改了。

所以现在就去找jingxialai.com.conf这个文件。

大多数依旧在:/usr/local/nginx/conf/  这个目录下的其他文件夹,自己点进去看。

比如我的在:/usr/local/nginx/conf/vhost/jingxialai.com.conf

那我就直接改了,加的代码都一样的。

最后:都得重新启动nginx,重启的命令也不一样的。

基于:service nginx restart

然后说下,关于强制跳转https,如果你网站用挂了全站的cdn,可以在cdn网站那边直接配置强制跳转https,比你服务器处理快,如果cdn开了强制跳转,服务器配置这里的跳转就得取消,不然网站打不开,重定向了。