联系QQ 284710375
首页 > 技术分享 > LNMP|WAMP
收藏

Nginx配置https2021-08-03 15:40:44

大潇博客 原创文章,转载请标明出处

准备工作:

1、服务器已安装nginx并可以正常访问

2、拥有ssl证书

3、服务器防火墙放行443端口


在配置ssl证书之前,要确保你的nginx已经安装了ssl模块,进入nginx的安装目录,输入:

./nginx -V  

如果出现 (configure arguments: --with-http_ssl_module),则已安装


若没有提示,则证明不存在ssl模块的,接下来进入到你的解压缩后的nginx目录,注意这里不是nginx安装目录,是我们从nginx官网下载的安装包,解压缩后的目录,进入目录后,输入:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

上面的命令要记住修改“/usr/local/nginx”为自己服务器中nginx的安装路径


然后执行:make

#切记不要执行make install,否则会重新安装nginx


上述操作执行完成以后,你的目录下会出现objs文件夹,文件夹内存在nginx文件,使用新的nginx文件替换掉之前安装目录sbin下的nginx,注意这里的替换的时候可以先将之前的文件备份下


再次执行:./nginx -V  


这时nginx的ssl就安装成功了


期间可能会报缺失PCRE库的错误,通过以下命令解决:

sudo apt-get update 

sudo apt-get install libpcre3 libpcre3-dev


你可能还需要安装

sudo apt-get install openssl libssl-dev


然后打开nginx.conf,添加一个新的server段落,在其中输入下面代码:

listen 443 ssl;

server_name 你的域名;

index index.php index.html index.htm;

root 项目根目录;

ssl_certificate crt或pem文件路径;

ssl_certificate_key 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;

image.png


然后重启nginx,配置成功


nginx强制https,两种写法,写在server段中

1、使用urlRewirte:rewrite ^(.*)$ https://$host$1 permanent;

2、使用301跳转:return 301 https://$server_name$request_uri;


对于不同格式秘钥的说明

不同服务商提供的ssl证书秘钥,有的为.pem文件(比如阿里云),有的是.crt文件(比如腾讯云)

经过我的测试,不用刻意转换为某种文件,ssl_certificate对应的文件既可以是.pem,也可以是.crt,加密方式不用做修改,两种文件都可被nginx接受,并且正常使用

image.png



打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311