nginx配置ssl驗證

在上一篇博客中,咱們只是經過nginx搭建了反向代理服務,因爲須要在小程序中使用https服務,因此須要申請安全證書。javascript

1.在所購買的域名商那申請免費的ssl證書,我買的是阿里的,因此直接在阿里上申請,並下載下來。具體申請方法能夠參考:https://yq.aliyun.com/articles/637307,https://yq.aliyun.com/articles/641517?spm=a2c4e.11153940.blogcont637307.20.577e259d9An8Dk。php

2.下載ssl的時候選擇nginx,下載後解壓會看到一個.key和.pem的文件,而後在服務器/etc/nginx/目錄下,建立ssl文件夾,而後將這兩個文件放入。css

3.在nginx.conf中配置,通常默認會在/etc/nginx/nginx.conf,配置以下:java

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
 # Virtual Host Configs
        ##

        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
        server{
                #監聽443端口
                listen 443;
                #對應的域名,把xxxxx.com改爲大家本身的域名就能夠了
                server_name xxxxx.com;
                ssl on;
                #從阿里雲獲取到的第一個文件的全路徑
                ssl_certificate /etc/nginx/ssl/xxxxx.pem;
                #從阿里雲獲取到的第二個文件的全路徑
                ssl_certificate_key /etc/nginx/ssl/xxxxx.key;
                ssl_session_timeout 5m;
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
                ssl_prefer_server_ciphers on;
                location / {
                        # proxy_pass http://xxxxx;
                        # root /;
                        proxy_redirect off;
                        proxy_set_header  Host $host; #請求主機頭字段,不然爲服務器名稱。
                        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for ;
                        proxy_set_header Accept-Encoding "";
                        proxy_set_header X-Real-IP $remote_addr;
                        add_header 'Access-Control-Allow-Origin' '*';
                        proxy_pass http://xxxxx.com:8000/;
                }
                location /wqgl/ {
                        proxy_redirect off;
                        proxy_pass http://xxxxx.com:3001/;
                }

        }
server{
                listen 80;
                server_name xxxxx.com;
                rewrite ^(.*)$ https://$host$1 permanent; # 把http的域名請求轉成https
                #location / {
                        # proxy_pass http://xxxx;
                        # root /;
                        #proxy_redirect off;
                        #proxy_set_header  Host $host; #請求主機頭字段,不然爲服務器名稱。
                        #proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for ;
                        #proxy_set_header Accept-Encoding "";
                        #proxy_set_header X-Real-IP $remote_addr;
                        #add_header 'Access-Control-Allow-Origin' '*';
                        #proxy_pass http://xxxxx.com:8000/;
                #}
                #location /wqgl/ {
                        #proxy_redirect off;
                        #proxy_pass http://xxxxx.com:3001/;
                #}
                # location / {
                       # try_files $uri $uri/ =404;
                # }


        }
}
#mail {
#       # See sample authentication script at:
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#       # auth_http localhost/auth.php;
#       # pop3_capabilities "TOP" "USER";
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#       server {
#               listen     localhost:110;
#               protocol   pop3;
#               proxy      on;
#       }
#
#       server {
#               listen     localhost:143;
#               protocol   imap;
#               proxy      on;
#       }
#}

這樣配置就成功,小程序就能夠正常訪問了。node

相關文章
相關標籤/搜索