Skip to content

Instantly share code, notes, and snippets.

View marcelog's full-sized avatar

Marcelo Gornstein marcelog

View GitHub Profile
@marcelog
marcelog / start_erws.sh
Created September 3, 2017 13:55
Start the erlang node with the websocket example
#!/bin/bash
./rebar get-deps
make
make runconsole
@marcelog
marcelog / create_ssl_client_certificate.sh
Last active June 27, 2019 17:01
Create SSL certificates for your clients by using your own CA
openssl genrsa -des3 -out client.key 4096
openssl req -new -key client.key -out client.csr
openssl x509 -req -days 3650 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt
@marcelog
marcelog / create_ca_certificate.sh
Created July 15, 2017 19:26
Create your own CA certificate
openssl genrsa -des3 -out ca.key 4096
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
@marcelog
marcelog / sample_ssl_haproxy.conf
Created July 15, 2017 19:06
Setup HAProxy for offload SSL connections and to check client certificates
bind *:443 ssl crt /etc/ssl/certs/mycert.pem ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA
-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AE
S128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-A
ES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA25
6:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:
!RC4 ca-file /etc/ssl/certs/myca.crt verify optional crt-ignore-err all
@marcelog
marcelog / passing_client_ssl_certificate_options_haproxy.conf
Last active November 21, 2023 18:22
Sample haproxy configuration snippet that will pass the SSL client certificate information to your application
mode http
http-request set-header X-SSL %[ssl_fc]
http-request set-header X-SSL-Client-Cert %[ssl_fc_has_crt]
http-request set-header X-SSL-Client-Verify %[ssl_c_verify]
http-request set-header X-SSL-Client-SHA1 %{+Q}[ssl_c_sha1,hex]
http-request set-header X-SSL-Client-DN %{+Q}[ssl_c_s_dn]
http-request set-header X-SSL-Client-CN %{+Q}[ssl_c_s_dn(cn)]
http-request set-header X-SSL-Issuer %{+Q}[ssl_c_i_dn]
http-request set-header X-SSL-Client-Not-Before %{+Q}[ssl_c_notbefore]
http-request set-header X-SSL-Client-Not-After %{+Q}[ssl_c_notafter]
@marcelog
marcelog / sha1_fingerprint_ssl_certificate.sh
Created July 15, 2017 13:22
Output SHA1 fingerprint for an SSL certificate
#!/bin/bash
openssl x509 -noout -fingerprint -sha1 -inform pem -in client.crt
@marcelog
marcelog / haproxy.conf
Created July 9, 2017 21:47
Multiple backends in haproxy by using ACL, one SSL certificate, and SNI
frontend http
bind *:443 ssl crt /etc/ssl/certs/mycert.pem ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4
mode tcp
acl backend1 ssl_fc_sni backed1.domain.com
acl backend2 ssl_fc_sni backed2.domain.com
tcp-request inspect-delay 5s
use_backend backend1 if backend1
use_backend backend2 if backend2
backend backend1
@marcelog
marcelog / ubuntu_install_webcamstudio.sh
Last active September 14, 2020 13:57
Install webcamstudio in Ubuntu to setup a virtual webcam to use as the phone camera in Android Emulator
#!/bin/bash
apt-get install software-properties-common
dpkg -S add-apt-repository
add-apt-repository ppa:webcamstudio/webcamstudio-dailybuilds
apt-get update
apt-get install webcamstudio
modprobe webcamstudio
@marcelog
marcelog / run_android_emulator_mesa_without_gpu.sh
Created July 9, 2017 18:59
Running the Android Emulator without GPU support by using Mesa and SDL
#!/bin/bash
tools/emulator -avd test -verbose -gpu mesa -qemu -sdl
@marcelog
marcelog / emu_prepare.sh
Last active July 9, 2017 15:58
Preparing the daemontools service for running an android emulator instance
#!/bin/bash
mkdir /tmp/myemu
cd /tmp/myemu
mkdir log
mkdir env
echo "/home/myemuuser/android-sdk-linux" > env/ANDROID_SDK_ROOT
echo ":0" > env/DISPLAY
echo "/home/myemuuser" > env/HOME
echo "x86_64" > env/HOSTTYPE
echo "linux-gnu"> env/OSTYPE