<div dir="ltr">Dear Andy,<div>        It is seems work well now. I do not know why the browser always prompt " <span style="color:rgb(186,189,182);font-family:cantarell">Oops! Unable to display this website.</span>"  yesterday.</div><div>        I use the Epiphany Web Browser.</div><div>        Anyway, I will check the flow further and update the status.</div><div><br></div><div>Thank your very very much!</div><div><br></div><div>Best Regards</div><div><br></div><div>Yours Chropin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 22, 2018 at 9:27 PM, Andy Green <span dir="ltr"><<a href="mailto:andy@warmcat.com" target="_blank">andy@warmcat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On 22/01/18 21:02, Chropin Hu wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear Andy,<br>
        Thank you very much,<br>
        I have instead of the host-ssl-key and host-ssl-cert, like this: (I can find the cacert, so, just mark it)<br>
             "host-ssl-key":   "/home/mtk40387/develop/libwe<wbr>bsockets-master/build/libwebso<wbr>ckets-test-server.key.pem",<br>
             "host-ssl-cert": "/home/mtk40387/develop/libweb<wbr>sockets-master/build/libwebsoc<wbr>kets-test-server.pem",<br>
              #     "host-ssl-ca":   "/home/mtk40387/develop/ecdh/<wbr>ca/cacert.pem",<br>
<br>
        But the result is the same:<br>
lwsws[19746]: accepted new conn port 51922 on fd=15<br>
lwsws[19746]: _realloc: size 88: peer<br>
lwsws[19746]: _realloc: size 832: new server wsi<br>
lwsws[19746]: new wsi 0x642e40 joining vhost localhost, tsi 0<br>
lwsws[19746]: lws_adopt_descriptor_vhost: new wsi 0x642e40, sockfd 15<br>
lwsws[19746]: insert_wsi_socket_into_fds: 0x642e40: tsi=0, sock=15, pos-in-fds=1<br>
lwsws[19746]: inserted SSL accept into fds, trying SSL_accept<br>
lwsws[19746]: lws_ssl_get_error: 0x643450 -1 -> 2<br>
</blockquote>
<br></span>
This is a log from SSL_accept... it just seems to be saying SSL_ERROR_WANT_READ, ie, nonfatal status.<br>
<br>
So I don't see anything going wrong.  Why do we think something went wrong?<br>
<br>
The title of your email says "How to fix the "SSL_CTX_get_extra_chain_certs<wbr>_only" error"... why do we think that is related to the problem?<br>
<br>
You don't mention what the client you are connecting to lws says about what happened to the connection.  If you connect with, eg, Firefox, it should complain about unknown CA and offer for you to make an exception.  What does the client say?<br>
<br>
-Andy<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
*The openssl version is: OpenSSL 1.0.2g  1 Mar 2016.*<br>
*<br>
*<br>
**Is it possible to disable the option *LWS_HAVE_OPENSSL_ECDH_H. *<br>
** It is very hard to generate to ECDH key, I just want to enable https and wss, maybe is easier to use other keys.<br>
<br>
Best Regards<br>
<br>
Yours Chropin.<span class=""><br>
<br>
On Mon, Jan 22, 2018 at 8:11 PM, Andy Green <<a href="mailto:andy@warmcat.com" target="_blank">andy@warmcat.com</a> <mailto:<a href="mailto:andy@warmcat.com" target="_blank">andy@warmcat.com</a>>> wrote:<br>
<br>
<br>
<br>
    On January 22, 2018 8:01:02 PM GMT+08:00, Chropin Hu<br></span><div><div class="h5">
    <<a href="mailto:chropinhu@gmail.com" target="_blank">chropinhu@gmail.com</a> <mailto:<a href="mailto:chropinhu@gmail.com" target="_blank">chropinhu@gmail.com</a>>> wrote:<br>
    >Dear All,<br>
    >       I am trying to setup a https server  on ubuntu.<br>
    >       Currently, I just use the lwsws,<br>
    >       The config file like this:<br>
    >        {<br>
    > "vhosts": [ {<br>
    >     "name": "localhost",<br>
    >     "port": "7681",<br>
    >     "interface": "lo",<br>
    >     "host-ssl-key":  "/home/develop/ecdh/ca/ecdhkey<wbr>.pem",<br>
    >     "host-ssl-cert": "/home/develop/ecdh/ca/ecdhcer<wbr>t.pem",<br>
    >     "host-ssl-ca":   "/home/develop/ecdh/ca/cacert<wbr>.pem",<br>
<br>
    What happens if instead of these, you use the test selfsigned certs<br>
    lws creates in the build dir when you run cmake?<br>
<br>
    -Andy<br>
<br>
     >#     "sts": "on",<br>
     >     "mounts": [{<br>
     >       "mountpoint": "/",<br>
     >       "origin": "file://_lws_ddir_/libwebsocke<wbr>ts-test-server",<br>
     >       "default": "test.html",<br>
     >       "cache-max-age": "60",<br>
     >       "cache-reuse": "1",<br>
     >       "cache-revalidate": "1",<br>
     >       "cache-intermediaries": "0"<br>
     >       }, {<br>
     >        "mountpoint": "/server-status",<br>
     >        "origin":<br>
     >"file://_lws_ddir_/libwebsoc<wbr>kets-test-server/server-<wbr>status",<br>
     >        "default": "server-status.html"<br>
     >        }, {<br>
     >        "mountpoint": "/testcgi",<br>
     >        "origin":<br>
     >"cgi://_lws_ddir_/libwebsock<wbr>ets-test-server/lws-cgi-test.<wbr>sh"<br>
     ><br>
     >       }, {<br>
     >        "mountpoint": "/formtest",<br>
     >        "origin": "callback://protocol-post-demo<wbr>"<br>
     >       }],<br>
     >     # which protocols are enabled for this vhost, and optional<br>
     >     # vhost-specific config options for the protocol<br>
     >     #<br>
     >     "ws-protocols": [{<br>
     >       "lws-meta": {<br>
     >         "status": "ok"<br>
     >       },<br>
     >       "dumb-increment-protocol": {<br>
     >         "status": "ok"<br>
     >       },<br>
     >       "lws-mirror-protocol": {<br>
     >         "status": "ok"<br>
     >       },<br>
     >       "lws-status": {<br>
     >         "status": "ok"<br>
     >       },<br>
     >       "protocol-post-demo": {<br>
     >         "status": "ok"<br>
     >       },<br>
     >       "lws-server-status": {<br>
     >         "status": "ok",<br>
     >         "update-ms": "5000"<br>
     >       }<br>
     >     }]<br>
     >    }<br>
     >  ]<br>
     >}<br>
     ><br>
     >The server always failed at the line marked as red.<br>
     ><br>
     >/* Get X509 certificate from ssl context */<br>
     >#if !defined(LWS_HAVE_SSL_EXTRA_CH<wbr>AIN_CERTS)<br>
     >x = sk_X509_value(vhost->ssl_ctx-><wbr>extra_certs, 0);<br>
     >#else<br>
     >SSL_CTX_get_extra_chain_cert<wbr>s_only(vhost->ssl_ctx, &extra_certs);<br>
     >if (extra_certs)<br>
     >x = sk_X509_value(extra_certs, 0);<br>
     >else<br>
     >lwsl_err("%s: no extra certs\n", __func__);<br>
     >#endif<br>
     ><br>
     >and further, The ssl accept always fail.<br>
     ><br>
     >lwsws[18957]: insert_wsi_socket_into_fds: 0x1114890: tsi=0, sock=15,<br>
     >pos-in-fds=1<br>
     >lwsws[18957]: inserted SSL accept into fds, trying SSL_accept<br>
     >lwsws[18957]: lws_ssl_get_error: 0x1114ea0 -1 -> 2<br>
     >lwsws[18957]: _realloc: size 2960: ah struct<br>
     >lwsws[18957]: _realloc: size 4096: ah data<br>
     ><br>
     >Someone can help me out?<br>
     >Thanks, I appreciate the answer.<br>
     ><br>
     >Best Regards<br>
     ><br>
     >Yours Chropin.<br>
<br>
<br>
</div></div></blockquote>
</blockquote></div><br></div>