经常在群里看见一堆人对配置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开了强制跳转,服务器配置这里的跳转就得取消,不然网站打不开,重定向了。