rss

GMail: gestion de vos emails aux petits oignons

Lorsque vous vous abonnez à une liste de diffusion / mailing-liste (exemple: archive des ML Apache ) ou alors lorsque vous recevez des mails automatisés (exemple: résultats de build Jenkins);

ce que vous aimez c'est :

  • recevoir les mails en temps réel ou selon vos préférences sur vos différents supports clients mails,
  • (ML) pouvoir y répondre de suite.
ce que vous détestez c'est :
  • avoir à classer/archiver ces emails,
  • avoir à supprimer les anciens mails inutiles (redondants avec les archives des ML ou avec votre dashboard Jenkins).

L'idéal serait de souscrire aux ML sans en avoir les inconvénients. Peut être des services en lignes ou d'autres méthodes existent (ex. souscription à un RSS) ; certains même me diront mais pourquoi classer ses mails :), .. mais personnellement j'ai décidé d'opter pour l'automatisation de la gestion de ce type de mails


Première étape : appliquer un label aux emails reçus : je ne vais pas faire l'affront de décrire cette étape car je pense que l'aide GMail est auto suffisante.

Seconde étape : utiliser un script google script pour automatiser la gestion de ces mails. Pour cette étape, rendez vous sur cette page de code. Vous y trouverez le code à copier-coller sur votre google script. Le reste n'est que paramétrage. Ce script utilise notamment les filtres avancés pour déterminer les fils de discussion (thread;groupe de mails) utiles.
Le code est assez lisible en l'état. 

Dernière étape : planifier l'exécution du script selon vos besoins.  L'aide en ligne de google script est très bien structurée.



Personnellement avec un filtre de réception, je positionne mes mails automatisés sous un label fils du label "ML". 
Puis avec ce code google script, je peux archiver automatiquement les mails de ML vieux de 2 jours et supprimer automatiquement les mails archivés de ML vieux de 60 jours minimum et n'ayant pas de label "keep".



Et vous comment faites vous ? des remarques positives/négatives sur ce type de gestion ..?


M$ Windows: minimal howto

This post is a kind of minimal 'how to' for Micro$oft Windows.

Windows : basic command (to execute from [WINDOWS + R])

cmd           : classic console
powershell    : power shell command console
msinfo32      : host info
devmgmt.msc   : devices management (fr: Gestionnaire de périphériques)
certmgr.msc   : certificates managers
services.msc  : windows services
shell:Startup : show startup programs (if any)
NB: for ssl cf ssl howto

network related commands

  • list all LISTENING ports
netstat -ano
netstat -ano | find "LIST"
  • find an application from portsrc
netstat -ano | find "LIST"
==> Pick the wanted process id from the last column. Example pid "8112"
tasklist  | find "8112"
tasklist /svc | find "8112"
  • DNS lookup
nslookup www.google.fr
nslookup
server 8.8.8.8
www.google.fr

other usefull common tools

  • FileZilla (secure FTP)
  • Notepad++ (light editor)
  • Cygwin (unix like shell)
  • Process Hacker 2 (improved task list manager)

ssl certificates and truststore: minimal howto

This post is a kind of minimal 'how to' for SSL, certificates and truststore :


Tomcat HTTPS application : how to use a valid and trusted self-signed certificate for localhost

Context

As WebDevelopper, I use Tomcat and I need to work with localhost with a secure web application. The issue with the latest browser update (ex. ggchrome) is that an invalid or untrusted self signed certificate could block the navigation or AJAX exchanges.
For example, you could get the folloowing error :

NET::ERR_CERT_AUTHORITY_INVALID
:: certificate validation chain is not trusted
ERR_INSECURE_RESPONSE
:: unable to trust a server answer

to workaround this issue, you could follow these steps:
  • generate a self-signed certificate for localhost
  • tell to tomcat to use this certificate
  • append this certificate to your workstation certificates manager

Generate a self signed certificate

$ keytool -genkey -keyalg RSA -alias tomcat \
  -keystore $HOME/.keystore -storepass changeit -validity 360 -keysize 2048
Warning: answer "localhost" to the first question

more documentation: tomcat8 ssl howto - sslshopper create self signed cert

Tomcat ssl configuration

Connector's attributes example from server.xml:
SSLEnabled="true" clientAuth="false" keystoreFile="${user.home}/.keystore" keystorePass="changeit" maxThreads="150" port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS"

Append this certificate to your workstation certificates manager

  • navigate to your tomcat application ; example : https://localhost:8443
  • (example using google chrome), right click on address bar lock / click on "certificate informations (...)" link / "details" tab
  • Choose "copy certificate into file" - keep default format X509 DER.
  • right click on the just created file to "Install certificate"
  • Select the following target : "Trusted root certification authorities"("Autorités de certification racines de confiance")
  • You could verify the certificate installation : Windows Start / Execute / certmgr.msc ; this will open Windows certificates manager
  • Restart your browser (use CTRL + ALT + Q for Google Chrome instead of closing the window).
  • navigate to your tomcat application ; example : https://localhost:8443 : your certificate should be trusted now

SSL Client : "PKIX path building failed" error

Java error

javax.net.ssl.SSLHandshakeException: 
sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Java workarounds

  • (bad and quick way) Disable all ssl check by configuration cf. UnsafeSSLHelper (from javabox github project)
  • (right way) Update the ssl verification chain. For example by importing new valid certificate(s) to your truststore.

Windows

  • Windows / List certificates:

    Start / Execute / certmgr.msc
  • Google Chrome / List certificates:

    go to Parameters, the search "ssl" (chrome://settings/search#ssl)


  • Import a certificate in a truststore file:

    Make a backup :
    cp %JAVA_HOME%/jre/lib/security/cacerts %JAVA_HOME%/jre/lib/security/cacerts.orig 
    
    Import a certificate :
    keytool -import -alias MyCert -keystore %JAVA_HOME%/jre/lib/security/cacerts \
         -trustcacerts -file MyCert.cer
    
    (cf. commandes+keytool ...)