CentOS下Nginx的HTTPS配置

来源:互联网 发布:windows 10输入法切换 编辑:程序博客网 时间:2024/05/17 22:03

在前面的博客里也到了nginx的安装,现在需要给网站添加安全证书的达到可以实现https请求的功能。

1.首先我们需要一个证书
可以使用自签名的证书(如何自签可以网上搜索下),虽然可以使用但不会被chrome,firefox,Safari等浏览器认可。
也可以去网上购买证书,加个几百元到上万元不等可以自行选择合适价位的证书,不过我在阿里云的购买证书上发现了赛门铁克的0元dv ssl可以使用一年,初次使用推荐去购买一个。

2.nginx的ssl模块安装
安装时直接./configure是不会安装ssl模块的,需要加上

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

3.nginx的ssl配置

添加新的server代码块用来监听443端口

... #服务器的集群  upstream  tomcats {  #服务器集群名字      server    127.0.0.1:8080  weight=10;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。     #server    127.0.0.1:28080  weight=2;  }  server {     listen     443;     server_name  www.xxx.com;     ssl on;      ssl_certificate   /usr/local/cert/证书名.pem;     ssl_certificate_key  /usr/local/cert/证书名.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;    location / {        root html;        proxy_pass http://tomcats;                index index.html index.htm;    }}...

4.将http重定向到https
server {
listen 80;
server_name www.xxx.com;

#添加下面这条代码  rewrite ^(.*)$  https://$host$1 permanent; #用于将http页面重定向到https页面  location / {    root html;    proxy_pass http://tomcats;    index index.html index.htm;}


5.重启nginx

/usr/local/nginx/sbin/nginx -s reload