IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Applet motion via Raspberry pi


Sujet :

Développement Web en Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Applet motion via Raspberry pi
    Bonjour!

    Je connais le site depuis un petit moment (sans forcément m'inscrire) en profitant de toutes les informations disponibles pour divers problèmes et je peux dire que le forum est une vraie mine d'or!

    Je suis actuellement sur un projet perso, celui de mettre une webcam sur mon Raspberry Pi2 et de la piloter grâce à un servomoteur via une page html.

    La camera fonctionne, le servo-moteur aussi, j’accède à la vidéo grâce au port et a la redirection, j'ai appris et trouvé le code python pour piloter le moteur (c'est l'éclate) et je peux tout piloter depuis mon raspberry.

    J'ai généré une page basique en html et j'ai trouvé sur le site https://wiki.debian.org/fr/Motion comment faire un applet java pour exporter ma cam sur mon site:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <applet code=com.charliemouse.cambozola.Viewer archive=cambozola.jar width="640" height="480" style="border-width:1; border-color:gray; border-style:solid;"> <param name=url value="http://ip_machine:8081"> 
    </applet>

    Le soucis (il en faut un), java me signal que mes paramètres de sécu ont bloqué l'exec à cause d'une appli auto-signée.
    Après plusieurs fouilles, je comprend un peu le principe et je tombe là dessus sur ce même site:


    Citation Envoyé par Jérémy Lefevre Voir le message
    Salut,
    alors on va reprendre du debut :
    tu as une applet qui a besoin d'etre signé pour cela il va te falloir créer une clé pour signer ton applet fait un tour aupres de ta commande keytool fourni dans le jdk de java sun
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    keytool -genkey -alias <le nom de ta clé> -keypass <pass de ta clé> -keystore <chemin du trousseau de clé> -storepass <mot de passe du trousseau>
    Ensuite si tu veux que ta clé soit reconnu comme digne de confiance tu doit générer un CSR ( certificate signed request) qui doit etre envoyé a un certificate autority pour etre authentifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    keytool -certreg -alias <le nom de ta clé> -keypass <pass de ta clé> -keystore <chemin du trousseau de clé> -storepass <mot de passe du trousseau> -file <chemin de ton CSR>
    RQ: pour lister les clé presente dans un trousseau de clé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    keytool -list -keystore <chemin du trousseau> -storepass <pass>
    une foie que tu as envoyé le tout à ton CA celui ci te renvoi un trousseau de clé contenant ta clé avec laquel tu va signer ton application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jarsigner -keystore <ton trousseau> -storepass <le pass du trousseau> -keypass <le pass de ta clé> <ton fichier a signé> <le nom de ta clé>
    bon courage jeremy
    J'essaye et toujours même problème... (Je remercie par ailleurs Jérémy Lefevre car maintenant j'ai appris a signer une applet).

    Je me suis demandé si ce n'était pas le fait d'avoir mis la protection MD5 digest dans le fichier conf de motion pour protéger l’accès à ma camera, mais aucun résultat si je l’enlève.

    Je ne comprend plus trop, java me bloque l'accès car mon appli est auto-signée, je générer de quoi l’exécuter pour être conforme avec les paramètres de sécurité sans succès alors que mon fichier jar à bien été signé....

    L'aurai-je mal signé? Et-il possible de consulter des logs ou autres de java quelque part ?

    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Les applets auto signées sont refusées. Tout simplement. Il n'y a pas de procédure magique à part obtenir un certificat valide auprès d'un CA. Si tu veux contourner le problème, tu peut mettre le site où se trouve l'applet dans la liste blanche de sécurité java.

  3. #3
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    je pense que mon problème viens de mon certificat, j'ai du mal le signer.

    Un truc ma fait tilt, tu m'a dit de l'authentifier auprès d'un CA et Jérémy dit: "Ensuite si tu veux que ta clé soit reconnu comme digne de confiance tu doit générer un CSR (certificate signed request) qui doit etre envoyé a un certificate autority pour etre authentifier"

    Je pense que mon soucis c'est l'authentification CA, je n'ai jamais authentifier mon CSR, j'ai essayé de suivre ce tuto:

    http://wikilabus.steformations.be/wi...ection_en_java

    Je n'ai pas compris la fin:

    ---------------------
    Création d'une keystore contenant le certificat de CA pour le client. Quand il demande un mot passe, saisir un mot de passe pour le client. Dans cet exemple : trusted

    Sous Windows :
    keytool -import -alias CACert -keystore ..\client\trusted.keystore -file cacert.pem
    Sous Linux :
    keytool -import -alias CACert -keystore ../client/trusted.keystore -file cacert.pem
    ---------------------

    ../client n'existe pas et je ne sais même pas ce que c'est, il en aprle une fois et quand je tape la commande avec mes propres fichiers mais le dossier est inaccessible.

    En tout cas j'ai bien mis openssl généré les .pem et après j'ai authentifié mon .csr pour me retrouver avec mon .cert, je l'ai ajouté dans le keystore sur le serveur.

    Je l'ai intégré dans firefox sur le PC client mais toujours pareil, dans la configuration java sur le pc client j'essaye de mettre le csr dans la gestion des certificats il me demande un mot de passe et impossible de trouver le bon (c'est pas le passe avec lequel j'ai créé le certificat ?).


    Sinon les excpetions ne fonctionne pas, j'ai beau mettre mon site et même l'adresse direct de la camera, ça ne marche pas!

    On est obligé de payer pour authentifier un certificat ?

  4. #4
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Si ça peut aider j'ai les logs java sur le pc client...


    basic: Dialog type is not candidate for embedding
    basic: PluginMain.unregisterApplet: 4 from mananger sun.plugin2.applet.Applet2Manager@166b85
    basic: Processus d'écoute de progression ajouté : sun.plugin.util.ProgressMonitorAdapter@7ee1a6
    security: Expected Main URL: http://83.156.223.66/cam/cambozola.jar
    basic: Plugin2ClassLoader.addURL parent called for http://83.156.223.66/cam/cambozola.jar
    security: Grant connect perm for http://83.156.223.66/cam/cambozola.jar : java.security.Permissions@16d14e0 (
    ("java.net.URLPermission" "http://83.156.223.66:80" "*:*")
    ("java.net.URLPermission" "http://83.156.223.66:80/-" "*:*")
    )

    security: Missing Codebase manifest attribute for: http://83.156.223.66/cam/cambozola.jar
    security: Missing Application-Library-Allowable-Codebase manifest attribute for: http://83.156.223.66/cam/cambozola.jar
    security: Valider la chaîne de certificats à laide de lAPI CertPath
    security: SHA-256Certificate finger print: 4F227F032EF5F0D74140A132C2C3F3495750809C2D25F57EEC0A4B4313B9939B
    network: Created version ID: 1.8.0.65
    network: Created version ID: 1.8.0.65
    basic: Vos paramètres de sécurité ont bloqué l'exécution d'une application auto-signée
    security: JUT Record:
    plugin2 denied [by security settings]
    http://83.156.223.66/cam/index.php: code=com.charliemouse.cambozola.Viewer codebase=http://83.156.223.66/cam/ width=634 archive=./cambozola.jar style=border-width:1;border-color:gray;border-style:solid; url=http://83.156.223.66:8081 height=474 app_model=eJyNU81uEzEQnvw1KQ05hHIBIQEqQuJgi1akSJyiqoeiRarawt3ddbuudm1jz6abHirxEkgceAPegzvPwJU3QILxZpMUVYqwtN61/c3M932e/fYLOt7Bw9jkzBeaJdJmZsqcPGNja9+ZRGYwG40m3ImgF9PWqfASYRBdiIngWiJ/fxS9iWAjkT52yqIyGmE4O86EPufH6JQ+J8hQlii1J8CR9KZwsfQI92fIAlXGx86JaaQ8Erh/IdwC9hGuoUX1MxOLUCCsGxGs50LpvUz4CtCkIC/jwimcBu4ILyJSxkkZnynjpIzPlW0d38BSwQ4qzGSdqI1TSwmerkxwQhgKXJtInRhXRZaW/OwHRYysYWTN52e7owe/f7oWdA+glwqf7lHwAbStcUgSRIGpCTTmlc/UkkVqPNbfPesMmthk9bpFVOqSf+qBcPf1Dnv5asS2t3fYaITQ4bHIeYCtI2VDtLZieK9iGDxnC8/LTz8effkuvragQey8upKlDVd/2Q5zWVncD61QbTQoy/MVfbP1dnl9yx5q3r7D7kQ6Xy+DfeHdnSuqmQ8rGfScmiuTCUatUZ2EaYMUlf9G3fZhUCVQOpEls6kN6M2FIQhPgpA4FS5TMjeFl2xZ64OSl9LZ/wFdO3i8ypLQL7UXMCRLHQyqewh/CdvXRX7zkCqujQ8Po/0T+xcYfyvX
    basic: exception : Vos paramètres de sécurité ont bloqué l'exécution d'une application auto-signée.
    com.sun.deploy.security.BlockedException: Vos paramètres de sécurité ont bloqué l'exécution d'une application auto-signée
    at com.sun.deploy.security.BlockedDialog.show(Unknown Source)
    at com.sun.deploy.security.TrustDecider.validateChain(Unknown Source)
    at com.sun.deploy.security.TrustDecider.isAllPermissionGrantedInt(Unknown Source)
    at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.isTrustedByTrustDecider(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.getPermissions(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.getPermissions(Unknown Source)
    at java.security.SecureClassLoader.getProtectionDomain(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.access$100(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Ignored exception: com.sun.deploy.security.BlockedException: Vos paramètres de sécurité ont bloqué l'exécution d'une application auto-signée
    basic: Dialog type is not candidate for embedding
    security: Réinitialiser la banque de certificats de sessions refusés
    basic: Processus d'écoute de progression enlevé : sun.plugin.util.ProgressMonitorAdapter@7ee1a6
    basic: Dialog type is not candidate for embedding

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Le lien que tu a donné n'a rien à voir, il est pour ajouter une authorité de certification (CA) à ton keystore pour que ton code java reconnaisse les sites HTTPS qui ont été signée par cette CA.

    Citation Envoyé par Ertios Voir le message

    ../client n'existe pas et je ne sais même pas ce que c'est,
    Ben c'est un dossier. On s'ne fou un peu, l'important c'est que tu sache où t'as mis ton KeyStore.

    Pour résumé, si tu veux un certificat de signature dans les règles:

    1) générer les clés publiques / privées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    keytool -genkey -alias unAliasPourTYRetrouver -keyalg RSA -keysize 2048 -keystore tonNouveauKeystore.jks
    2) génerer une demande de certificat à partir de la clé publique (CSR= Certificate Signing Request)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    keytool -certreq -alias unAliasPourTYRetrouver -file csr.csr -keystore tonNouveauKeystore.jks
    3) envoyer ça (le fichier csr généré) à un CA avec les preuves de ton existence qu'il pourrait te demander
    4) Payer
    5) Mettre dans le keystore le certificat validé que t'as renvoyé le CA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    keytool -import -trustcacerts -alias unAliasPourTYRetrouver -file leFichierQueTaEnvoyeLeCA.p7b -keystore tonNouveauKeystore.jks
    6) signer ton applet autant de fois que tu le veux.

    https://www.digicert.com/code-signin...ning-guide.htm

  6. #6
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci pour la réponse. Seulement pour un projet personnel, payer une tel somme c'est pas possible ou alors j'ai rien compris!

    J'ai réussi a débugger la situation pour les exceptions et j'ai mis le site. Pour me connecter à ma webcam via motion je passe par une authentification "MD5 digest". Grâce à l’exception, l'application cambozola passe et fait appel à cette authentification (java m'ouvre une fenêtre)

    Nom : Sjc.png
Affichages : 411
Taille : 10,4 Ko

    Nouveau bug, quand je rentre mes identifiants (ceux utilisé pour le lien directe à la cam) ben il me les redemande sans arrêt et au bout de 20 tentatives il s’arrête avec un message:

    "java.io.IOException: Server returned HTTP response code: 401 for URL:http://Myip:port"

    Message basique du max de tentatives atteintes j'imagine...

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Ertios Voir le message
    Merci pour la réponse. Seulement pour un projet personnel, payer une tel somme c'est pas possible ou alors j'ai rien compris!
    D'où mon premier message:

    Citation Envoyé par tchize_ Voir le message
    Si tu veux contourner le problème, tu peut mettre le site où se trouve l'applet dans la liste blanche de sécurité java.

    Citation Envoyé par Ertios Voir le message
    Grâce à l’exception, l'application cambozola passe et fait appel à cette authentification (java m'ouvre une fenêtre)
    Grâce à l'exception??! Là je ne comprends pas trop ce que tu veux dire.

    Citation Envoyé par Ertios Voir le message
    J'ai réussi a débugger la situation pour les exceptions et j'ai mis le site. Pour me connecter à ma webcam via motion je passe par une authentification "MD5 digest".

    Nom : Sjc.png
Affichages : 411
Taille : 10,4 Ko

    Nouveau bug, quand je rentre mes identifiants (ceux utilisé pour le lien directe à la cam) ben il me les redemande sans arrêt et au bout de 20 tentatives il s’arrête avec un message:

    "java.io.IOException: Server returned HTTP response code: 401 for URL:http://Myip:port"
    Faudrait que tu nous montre ton code que tu utilise pour faire ton authentification, difficile sinon de t'aider à ce sujet

  8. #8
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    L'exception c'est la listes des sites avec exception dans la configuration java, la fameuse liste blanche. (Au début j'arrivais pas à mettre mon site dedans, je ne sais plus trop pourquoi..., donc je voulais générer le certificat).

    Pour motion, c'est simplement une appli qui a un fichier ".conf", dedans on trouve ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    # Set the authentication method (default: 0)
    # 0 = disabled
    # 1 = Basic authentication
    # 2 = MD5 digest (the safer authentication)
    stream_auth_method 2
     
    # Authentication for the stream. Syntax username:password
    # Default: not defined (Disabled)
    stream_authentication username:password
    Ce qui fait que quand j’accède à mon "http://ip:port" pour voir la camera (motion à un mini serveur web intégré) il me demande une authentification:

    Nom : Smot.png
Affichages : 306
Taille : 7,8 Ko

    J'ai fais le test de ne pas mettre d'Auth dans le fichier .conf de motion et c'est nickel j'ai bien ma camera sur mon site web (via l'applet cambozola).

    Ça sent le tout petit dernier truc à la noix qu'il faut que je trouve, je pense que c'est tout bête.

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu es sur que ton applet support le md5 digest?

  10. #10
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Pas du tout, je ne savais même pas qu'il fallait certaines conditions pour qu'il le supporte, d'un côté je ne connais strictement rien à java, je met le pied dans le plat au point de m'embourber.

    Je vais m'attarder sur ce point pour comprendre!


    Petite aparté, sur tout le long de mon projet j'ai appris sur le tas sans connaître les commandes de python, java et avec de simple notions en linux et web.
    J'ai surtout fais beaucoup de recherches sur la sécurité (fail2ban, alerte sms, iptables, rkhunter) avant de me lancer dans l'installation d'une camera ou autre.

Discussions similaires

  1. Lancer un .jar ou une applet Java via HTML
    Par happy_man dans le forum Applets
    Réponses: 1
    Dernier message: 06/06/2013, 11h55
  2. Réponses: 1
    Dernier message: 16/03/2009, 08h25
  3. [XML]execution d'applet via Spring java 1.4
    Par Arnard dans le forum Spring
    Réponses: 7
    Dernier message: 23/05/2006, 16h14
  4. [applet ]envoyer fichier via ftp? quelle solution?
    Par chouchou93 dans le forum Applets
    Réponses: 5
    Dernier message: 27/03/2006, 15h35
  5. Réponses: 6
    Dernier message: 09/11/2005, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo