阿里云https+nginx服务搭建及配置

2018-12-06  本文已影响17人  lookphp

本文不会介绍https相关知识,只是把我创建https服务的过程分享出来,供读者参考。并且已经假设你已经购买了服务器和域名。

购买证书

image

-然后按照要求,首先填写你要申请证书的完整域名(例如www.test.com,因为此证书为单域名,不能使用通配符);

image

添加443端口(https)安全组规则

image

下载证书

image

配置nginx服务器

upstream blog {
  server 127.0.0.1:8080;
}
server {
  listen 80;
  server_name www.test.com;
  return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name www.test.com;
    index index.html;
    ssl_certificate   /etc/nginx/cert/***.pem;
    ssl_certificate_key  /etc/nginx/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 / {
    proxy_set_header  X-Forwarded-Host $host;
    proxy_set_header  X-Forwarded-Proto $scheme;
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    expires off;
    sendfile off;
    proxy_pass http://test;
  }
}

修改防火墙规则

测试

配置过程中遇到的问题及解决办法

Solution:
you should need to add following to nginx server block
listen 443 default_server ssl;
example:-
server {
listen 443 ssl;
ssl_certificate /etc/nginx/cert/****.pem;
ssl_certificate_key /etc/nginx/cert/****.key;
}

如上面所说,将server中的ssl声明复制一份到nginx.conf中的http模块中,或conf.d/default.conf中。http中声明的全局SSL证书只是个打酱油的,只是为了不让nginx报上述no “ssl_certificate” is defined的错误,真正生效的证书配置还是在server段。

参考文档:

上一篇下一篇

猜你喜欢

热点阅读