使用NanoHttpd在Android設備創建https/wss服務端

使用NanoHttpd在Android設備創建https/wss服務端

NanoHttpd提供創建輕量級Http服務端,具體介紹文檔見項目的地址:https://github.com/NanoHttpd/nanohttpd

如何創建服務端https/wss,在這裏不做介紹,詳細見文章下面提供的Demo。

生成kbs證書

證書分官方頒發的證書和自簽名的證書,如果使用自簽名證書,在用瀏覽器訪問時會提示網站不收信任或者直接不可訪問,需要將網址加入到受信任的網站纔可以訪問。
由於android只支持kbs證書,所以需要將證書轉換格式,這裏推薦使用portecle。當然也可以使用openssl+keytool工具進行轉換,這裏不做介紹。進入portecle下載地址,下載完成後,右鍵打開即可。導入待轉換的證書,選擇轉換爲KBS-V1後保存。


NanoHttpd中加入證書

在Android項目路徑下新建raw文件夾,將轉換好的kbs文件複製粘貼到raw目錄下。
 

        InputStream keystoreStream = MainApplication.getContext().getResources().openRawResource(id);
        KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
        keyStore.load(keystoreStream, password.toCharArray());
        KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
        keyManagerFactory.init(keyStore, password.toCharArray());
        mNanoHttpService.makeSecure(NanoHTTPD.makeSSLSocketFactory(keyStore, keyManagerFactory), null);






 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章