最近又回頭寫Java的程式,遇到的問題是要去呼叫https secure url,結果一直有Exception產生。

Exception:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found

網路上的解法不少。但是我試了好幾個還是覺得
這篇作者的解法最容易,也較容易理解。

另外這篇也不錯。

给有可能遇到跟我一樣問題的人參考囉!順便我自己也可以把這樣的問題記錄起來,方便自己以後找問題。




我把作者個code整理如下:

package com.xxx.xxx.util;

import java.security.KeyManagementException;

import java.security.NoSuchAlgorithmException;

import java.security.SecureRandom;

import java.security.Security;

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

import javax.net.ssl.SSLContext;

import javax.net.ssl.TrustManager;

import javax.net.ssl.X509TrustManager;

import com.sun.net.ssl.HostnameVerifier;

import com.sun.net.ssl.HttpsURLConnection;

public class SSlTrustManagerTool {

 private SSlTrustManagerTool() {

 }

private static org.apache.log4j.Category logger = org.apache.log4j.Category.getInstance(SSlTrustManagerTool.class);

public static void trustHttpsCertificates() throws NoSuchAlgorithmException, KeyManagementException {   

  Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());  

  // Create a trust manager that does not validate certificate chains:   

  TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {

        public X509Certificate[] getAcceptedIssuers() {       

           logger.info("getAcceptedIssuers");       

          return null;     

        }     

        public void checkServerTrusted(X509Certificate[] certs,String authType) throws CertificateException {      

        logger.info("checkServerTrusted");       

        return;     

       }     

      public void checkClientTrusted(X509Certificate[] certs,String authType) throws CertificateException {       

        logger.info("checkClientTrusted");      

        return;     

      }   

   } // X509TrustManager   

   };// TrustManager[]   

   // Install the all-trusting trust manager:

    SSLContext sc = SSLContext.getInstance("SSL");   

    sc.init(null, trustAllCerts, new SecureRandom());   

    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());   

    HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {    

      public boolean verify(String hostname, String session) {       

        logger.info(hostname + " " +  session + " is accepted!");      

        return true;      }  

    }

    );

    }

}



另外使用的方式如下:

URL url=new

URL(
https://www.xxx.xxx
);

com.xxx.xxx.util.SSlTrustManagerTool.trustHttpsCertificates();

//parse output data

String res=new String();

StringBuffer StrBuffer = new StringBuffer();

BufferedReader oIn = new BufferedReader(new InputStreamReader(url.openStream()));

這樣就可以達成Connect to https by Java 囉!!


pcshu 發表在 痞客邦 留言(0) 人氣()

自從大學二年級出了一場車禍之後,我的肩頸部位就會隨著天氣的變化,或是工作過度勞累而產生類似落枕的症狀,也就是脖子那附近的神經會很痛。

這個症狀隨著我大學畢業後,進入研究所念書後就越來越嚴重了,每次痛起來真的是要人命,所以後來每次只要一痛我就去找醫生開能夠讓神經舒展的藥。期間醫生有建議我多吃維他命B群,也有朋友建議我要去看中醫,這些我都也有照做,但是效果還是沒那麼好!!

母親知道我這樣的症狀之後,也幫我找了好多方法及好的中醫師,讓我去看。因為痛起來還真的是要我的命阿!!

而母親兩年多前,認識了有在吃甲魚精的朋友,那時她的朋友推薦他也吃,但是母親總是不放在心理,心想那個東西怎麼會有用呢?不過就是個甲魚營養品,怎麼會有那麼多的神奇療效。不過在去年的時候,母親突然想說吃吃看,就跟朋友買了一瓶甲魚精來吃。後來吃一吃,似乎感覺她的精神好的多,而且夜晚頻尿的狀況也有所改善,當然到達有改善的地步,已經是吃了好幾瓶了。也因為母親吃了有效吃後,她也想推薦我吃吃看,但是我們年輕人怎麼可能會相信這種東西呢?我一口就跟母親說不用啦!!我這個去醫院檢查都說沒問題,也許真的是因為我工作太累才會這樣的,但是後來還是答應母親先拿一瓶回去吃。但是我一放就是好幾個月,根本就不想開來吃。

直到去年的十月左右,也是突然想說試試看也好。無意間就一直吃到現在。似乎我的症狀也有些許的改善。所以想說利用這個Blog來記錄我自己吃甲魚精的整個過程,給有慢性病困擾的朋友參考看看。

所以接下來,我會找時間慢慢把我吃甲魚精的過程紀錄寫在網誌上面,給有興趣的朋友參考看看囉!!希望有一天您的慢性病也能像我這樣有所改善。

今天好晚了....有時間再上來寫寫...


pcshu 發表在 痞客邦 留言(0) 人氣()

很久之前將Tomcat當作Web Server時,遇到的效能問題、及處理方式。在這個園地提供給需要的人參考囉!!

Linux系統要自動在開機時將Tomcat啟動的方式

 vi /etc/rc.d/rc.local   加入

/opt/Jakarta-tomcat-4.1.29/bin/startup.sh

效能調校

修改tomcat/conf/server.xml

放大connection 數目至 500


port=”80” minProcessors=”5” maxProcessors=”500”

               enableLookups=”true” redirectPort=”443”

               acceptCount=”100” debug=”0” connectionTimeout=”20000”

               useURIValidationHack=”false” disableUploadTimeout=”true” />

建議放大Java的可用記憶體配置

在 /opt/Jakarta-tomcat-4.1.29/bin/startup.sh 加入以下命令將可用記憶體配置放大至768MB(1G的記憶體)

export JAVA_OPTS=-Xmx768m  

重新啟動tomcat


pcshu 發表在 痞客邦 留言(0) 人氣()

好用的Regex,需要的可以參考參考喔!!

Example:

   using System.Text.RegularExpressions;  

   Regex ft = new Regex("
   MatchCollection ftc = ft.Matches(src, 0);

   int num = ftc.Count;


pcshu 發表在 痞客邦 留言(0) 人氣()

來台北工作也快三年了,這將近三年的時間裡,我每天都坐公車上班,

因為台北的交通實在讓我害怕~_~""



有些公車司機會很貼心的減速轉彎、慢慢煞車 



有些公車司機卻猛力採油門又猛力採煞車、轉彎不帶煞車 



我總是在下車的同時,會習慣性的看一下司機的臉色



發現體貼的公車司機,臉色總是比較好 



不體貼的司機,臉色總是很臭 換成最近自己的工作心境... 



不管環境如何,你在哪工作,都要對工作有熱忱 



這樣才不會變成不體貼的司機,也不會因為工作的辛苦 而對工作厭煩 



共勉之...

pcshu 發表在 痞客邦 留言(0) 人氣()

«123