使用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);






 

你可能感兴趣的:(使用NanoHttpd在Android设备创建https/wss服务端)