国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Oracle APEX 系列文章11:全站啟用 HTTPS,讓你的 APEX 更安全

Vicky / 2473人閱讀

摘要:引言目前主流的網站都要求安全訪問,瀏覽器微信內置瀏覽器打開非的網頁,都會提示不安全。按照提示補全信息。鋼哥提示特別要注意的是,這里要選擇格式證書進行安裝,否則會有問題。本文如有遺漏或不足的地方也請隨時跟鋼哥交流,讓我們共同學習,共同進步

引言

目前主流的網站都要求 HTTPS 安全訪問,Google Chrome 瀏覽器、微信內置瀏覽器打開非 HTTPS 的網頁,都會提示不安全。如果做微信端開發,也是必須要 HTTPS 的網址才可以,可見 HTTPS 越來越重要了。

還不了解什么是 Oracle APEX,請閱讀我的另一篇文章:Oracle APEX 系列文章1:Oracle APEX, 讓你秒變全棧開發的黑科技

Oracle APEX 系列文章2:在阿里云上打造屬于你自己的APEX完整開發環境 (安裝 CentOS)

Oracle APEX 系列文章3:在阿里云上打造屬于你自己的APEX完整開發環境 (安裝 Tomcat, Nginx)

Oracle APEX 系列文章4:在阿里云上打造屬于你自己的APEX完整開發環境 (安裝XE, ORDS, APEX)

Oracle APEX 系列文章5:在阿里云上打造屬于你自己的APEX完整開發環境 (進一步優化)

如果你按照鋼哥之前的文章已經搭建好了 Oracle APEX 環境,那么你的應用架構應該如下圖所示:

這里簡單回顧一下各部分組件的作用:

用戶在瀏覽器地址欄里輸入URL,例如:https://apex.wangfanggang.com... (不要嘗試打開這個網址了,我瞎寫的)

Nginx監聽 HTTP (80) 端口和 HTTPS (443) 端口,如果請求的是靜態文件(如:image, js 或者 css),則直接獲取/i/目錄中的內容,對于其他動態請求(如:APEX請求),進一步轉發至后端 Tomcat 服務器做進一步處理。

Tomcat 服務器接收到請求后,會查找部署在它上面的應用,就是我們之前部署的ORDS應用;

如果是 APEX 請求,ORDS 進一步將請求轉發給 APEX (Oracle 數據庫) 進行處理;如果是 ORDS 請求,自身進行處理;

原理比較簡單,而我們要做的就是在 Nginx 層面講 HTTP 請求轉發到 HTTPS 上,進而實現全站 HTTPS 訪問。

申請 SSL 證書

這里以在阿里云上購買免費 SSL 證書為例,首先登錄阿里云控制臺,進入安全(云盾)-> SSL證書(應用安全),點擊購買證書

進入到選擇購買頁面,提示1年需要五千多大洋,土豪直接點擊付款即可。

好吧,我是窮人,只能看看有沒有免費證書。其實是有的,依次點擊Symantec -> 1個域名 -> 免費型DV SSL,成功激活30人:)

接下來回到控制臺,補全剛剛申請的證書信息。

按照提示補全信息。

鋼哥提示:由于我們申請的是阿里云的免費證書,只能作用于一個固定域名,一般我們都不會把主域名用來放置APEX應用,所以這里可以填寫諸如:apex.xxx.com 的二級域名。如果你想要免費通配符域名,可以移步這里:使用Let’s Encrypt給網站加上免費HTTPS證書

另外需要注意的是,第二步的驗證環節,如果你選擇的是文件驗證,請一定按照提示把對應的驗證文件放到你的服務器上,正常文件驗證一般不會超過5分鐘,如果長時間沒驗證通過,一定是你操作有問題了。

當你的證書申請通過后,就可以點擊下載鏈接了。

配置 Nginx

將 SSL 證書添加進nginx.conf,按照下載證書頁面的提示配置 Nginx:

我的nginx.conf文件內容如下:

worker_processes  auto;
worker_rlimit_nofile 10000;

error_log  logs/error.log;

events
{  
   worker_connections  2048;
   #==告訴nginx收到一個新鏈接通知后接受盡可能多的鏈接
   multi_accept on;
   #==設置用于復用客戶端線程的輪訓方法
   use epoll;
}

http
{  
   include       mime.types;
   default_type  application/octet-stream;
   charset UTF-8;

   log_format  main  "$remote_addr - $remote_user [$time_local] "$request" "
                      "$status $body_bytes_sent "$http_referer" "
                      ""$http_user_agent" "$http_x_forwarded_for"";

   access_log   /etc/nginx/logs/access_log.log main;


   server_tokens off;
   sendfile      on;
   tcp_nopush    on;

   keepalive_timeout  65;
   proxy_connect_timeout 600;
   proxy_send_timeout 600;
   proxy_read_timeout 600;
   send_timeout 600;

    #==設置nginx采用gzip壓縮的形式發送數據,減少發送數據量,但會增加請求處理時間及CPU處理時間,需要權衡
     gzip  on;
    #==加vary給代理服務器使用,針對有的瀏覽器支持壓縮,有個不支持,根據客戶端的HTTP頭來判斷是否需要壓縮
    gzip_vary on;
    gzip_http_version 1.0;
    gzip_types text/plain application/javascript application/x-javascript text/css;
    gzip_min_length  1024;
    gzip_comp_level 3;

    server
    {  listen      443 default_server;
       server_name apex.wangfanggang.com;

       ssl on;
       ssl_certificate      cert/214412416080589.pem;
       ssl_certificate_key  cert/214412416080589.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 = /
        {  
           # 默認打開某個APEX應用
           rewrite ^/(.*) https://apex.wangfanggang.com/ords/f?p=102 redirect;
        }

        location ~* .(eot|ttf|woff|woff2)$
        {  
            add_header Access-Control-Allow-Origin *;
        }

        location ^~ /i/
        {  
            alias /u01/tomcat/webapps/i/;
        }

        location ^~ /ords/
        {  
           # 將請求轉發到tomcat上
           proxy_pass http://localhost:8080/ords/;
           proxy_redirect off;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-Proto  $scheme;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           client_max_body_size 20m;
        }

    }

    server
    {  
      listen       80 default_server;
      server_name  apex.wangfanggang.com;

      include /etc/nginx/default.d/*.conf;

      location = /
      {  
            # 所有http請求統一重定向到https上
            rewrite ^/(.*) https://apex.wangfanggang.com/ords/f?p=102 redirect;
      }

      location ~* .(eot|ttf|woff|woff2)$
      {
          add_header Access-Control-Allow-Origin *;
      }

      location ^~ /i/
      {
           alias /u01/tomcat/webapps/i/;
      }

      location ^~ /ords/
      {  
           # 所有http請求統一重定向到https上
           proxy_pass https://apex.wangfanggang.com/ords/;
         proxy_redirect off;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-Proto  $scheme;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         client_max_body_size 20m;
      }


      error_page 404 /404.html;
      location = /40x.html
      {
      }

      error_page 500 502 503 504 /50x.html;
      location = /50x.html
      {
      }
    }
}

配置完 nginx,別忘了重啟令配置生效。再次在瀏覽器中訪問 APEX 頁面,如果能看到如下界面,恭喜你,你的 SSL 證書生效了!!

配置 Tomcat

鋼哥在配置的時候 SSL 證書時遇到了一個奇怪的問題,就是啟用 SSL 證書后,訪問 APEX 頁面時會發生重定向錯誤(302 error:too_many_redirects),導致無法正常訪問。

經過跟同事幾天的研究,發現除了要在 Nginx 上啟用 SSL 證書以外,還必須在 Tomcat 上也啟用。還是回到阿里云控制臺證書下載頁面,找到 Tomcat 配置證書部分。

鋼哥提示:特別要注意的是,這里要選擇JKS格式證書進行安裝,否則會有問題。

在 Tomcat 的server.xml文件中添加如下內容:

我的server.xml文件內容:








  

  

  

  

  
  
  
  

  

  
    

    
  

  


  
    

    

    

    

    

    

    

    


    

    

    


    

    

    

    

    

      

      



      

      
        
        
      

      

        
      
      
    
  

重啟 Tomcat 服務器,再次訪問 APEX,煩人的重定向問題終于得以解決。

結語

用 HTTPS 協議來安全地訪問你的 APEX 應用,這一點特別是對企業應用特別重要,相信你現在已經掌握了如何在 APEX 上全站啟用 SSL 證書。本文如有遺漏或不足的地方也請隨時跟鋼哥交流,讓我們共同學習,共同進步!


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39986.html

相關文章

發表評論

0條評論

Vicky

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<