http://php.net/manual/en/book.openssl.php
http://phpseclib.sourceforge.net/x509/guide.html
http://phpseclib.sourceforge.net/x509/guide.html#selfsigned
( Reference: https://en.wikipedia.org/wiki/X.509 )
JavaScript:
[SSL Client Authentication in Node.js]
http://nategood.com/nodejs-ssl-client-cert-auth-api-rest
[Client Side Certificate Auth in Nginx]
http://blog.nategood.com/client-side-certificate-authentication-in-ngi
[List of JavaScript Crypto Libraries]
https://gist.github.com/jo/8619441
[Stanford JavaScript Crypto Library]
https://crypto.stanford.edu/sjcl/ -> https://github.com/bitwiseshiftleft/sjcl
HTML5 Keygen
[Client Certificates and the HTML5 keygen Tag]
http://orcaman.blogspot.com/2013/12/client-certificates-and-html5-kegen-tag.html?m=1
A demo:
https://openweb.or.kr/html5/index_en.php
which points to:
https://openweb.or.kr/html5/download.txt
(useful: see setting www-data permissions: http://stackoverflow.com/questions/9133024/www-data-permissions,
http://www.cyberciti.biz/faq/ubuntu-add-user-to-group-www-data/)
guess:
sudo chown -RW www-data
./demoCA which is related to:
https://github.com/melvincarvalho/foafssl/blob/master /simpleCreateClientCertificate.php
see especially (https://github.com/melvincarvalho/foafssl/blob/master/cert.php), and compare it to the first link (http://php.net/manual/en/book.openssl.php)
https://lists.w3.org/Archives/Public/public-xg-webid/2011Aug/0042.html