[GELÖST] Voucherdruck als PDF / Captive Portal Port

Started by Oxygen61, October 19, 2016, 09:59:23 AM

Previous topic - Next topic
November 30, 2016, 10:03:54 AM #15 Last Edit: November 30, 2016, 10:21:05 AM by Oxygen61
Hey hey Leute,

Bump.

Ich hab mich nochmal rangesetzt und muss das Thema noch mal von den Toten auferwecken.
Ich hab mal en Screenshot gemacht, von den Fehlermeldungen die kommen noch bevor das Einstellungs-Fenster angezeigt wird. Vielleicht kann damit jemand was anfangen. da steht halt "require Java false". Kann mir nicht erklären, warum das Fehlen sollte :/

Weil es über das Livesystem irgendwie nich hinhaut werd ich demnächst mal versuchen über ne Virtualbox, die API anzusprechen. Werd dann auch Ubuntu dafür nutzen. Vielleicht klappts ja. :-/

Schöne Grüße

require liefert den return-Wert false, wenn die Datei bereits geladen wurde - ist völlig normal (hängt auch davon ab, welche shell man gerade verwendet).

Wo du dir eher sorgen machen musst, ist der LoadError. Das sagt mir, dass er die Clientbibliothek nicht findet.
Setze den mal auf "C:/Users/<username>/Desktop/opnsense_client_lib_master/opnsense" und probiers damit noch mal.

Mit freundlichen Grüßen

Fabian

December 01, 2016, 10:16:54 AM #17 Last Edit: December 01, 2016, 11:43:41 AM by Oxygen61
Hey Fabian,

danke erst einmal das du mich noch nich aufgegeben hast :P
Folgendes. Ich hatte bereits "C:\Users\<username>\Desktop\OPNsense_client_lib_master\opnsense\" als Pfad angegeben. Wenn ich am Ende das "\" weg mache, ändert sich nichts. Was ich merkwürdig finde ist, dass er bei der Abfrage des Pfades immer nur "C:\Users\<username>\Desktop\OPNsense_client_lib_master" zu nutzen scheint, egal was ich vorher eingebe.

Deshalb hatte ich jetzt noch versucht im "client.rb" folgende Zeile zu ändern:
______________

$path = File.dirname(File.expand_path(__FILE__))

ConfigurationFile = $path + "/configuration.yml"
$configuration = {"opnsense_lib"=>"C:\Users\<username>\Desktop\OPNsense_client_lib_master\opnsense", "browser"=>"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe", "base_url"=>"https://<Lan-IP>/api/", "api_credential_file"=>"C:\Users\<username>\Desktop\apikey\apikey.txt", "ca_file"=>"C:\Users\<username>\Desktop\Zertifikat\cert.crt"} 

______________
Dadurch konnte ich zu mindestens schon einmal den LoadError beseitigen.
Jetzt öffnet sich ein Fenster ohne Inhalt siehe Bild 2.

Schöne Grüße :)

EDIT: Meine Idee scheint doch nicht zu funktionieren. Wenn ich mit den festeingetragenen Werten das client.rb starte sagt er "SyntaxError" in client.rb:11

EDIT2: Okay also ich scheine das Hauptproblem gefunden zu haben. Und zwar, bin ich immer davon ausgegangen, dass ich die "\" nehmen muss, da ich ja Windows nutze. client.rb kann damit aber nix anfangen und ignoriert dieses Zeichen komplett. nehme ich "/" kann er zu mindestens schon mal den apikey nutzen, die baseurl verstehen und die library laden.
Das Problem ist jetzt eigentlich nur noch. Obwohl er alles zu verstehen weiß, öffnet er trotzdem jedes mal das Einstellungs-Fenster für die Pfade. Fehlerbild 3 und 4 sind die Ausgaben die er mir in der Konsole gegeben hatte. :-/

führe mal require_relative direkt aus - also ohne den block zwischen if und dem letzten end auf dem screenshot. Ich bin mir sicher, dass hier aus irgendeinem grund der tab nicht initialisiert werden kann (würde mal vermuten, dass die verbindung nicht klappt)

Hey Fabian,

scheint noch nicht zu klappen. :( Bild wieder im Anhang.
Das Ende von client.rb sieht nun so aus nach dem Auskommentieren:
______________

[...]
$tab_pane.add_change_listener do |x|
  idx = x.get_source.get_selected_index
  window.size = $windowsizes[idx]
end

=begin
##########################################################
if $configuration['opnsense_lib'].length > 0
begin
 
rescue
end
end
=end

require_relative './modules/voucher'
require_relative './modules/options'

##########################################################

# finally show the window
window.add $tab_pane
window.visible = true
________________________

Ich hatte aus './modules/voucher' mal noch das .rb rangehangen zum Test aber das klappte auch nicht. :(

Schöne Grüße
Oxy

December 01, 2016, 05:47:24 PM #20 Last Edit: December 01, 2016, 05:53:42 PM by DokuKäfer
Hallo zusammen,

so kann den Oxy jetzt nicht mehr alleine lassen  ;D und hab es nochmals bei mir getestet. Ich musste auch nochmals kämpfen. Aber mit dem Chatverlauf von Fabian aus FB hab ich es wieder ans laufen bekommen.  ;)

Ich verwendete damals mit Fabian kein cert-File, da es hier bei mir Probleme gab.

Meine configuration.yml sieht folgendermaßen aus:

---
opnsense_lib: G:\OPNsense\OPNsense_client_lib-master\opnsense
browser: C:\Program Files\Mozilla Firefox\firefox.exe
base_url: http://192.168.2.10/api/
api_credential_file: G:\OPNsense\OPNsense-client-library-sample-master\apikey.txt
ca_file: ''


Wenn ohne cer-File, dann bei bei "base_url:" kein https verwenden.


Hallo ihr beiden,

ihr werdet es kaum glauben, aber es hat tatsächlich an dem cert File gelegen. Als ich den Webconfigurator Zugriff auf http umstellte und die configuration.yml ohne HTTPS umschrieb funktionierte es sofort. Unglaublich....  8) ;D
Ich weiß grad nich ob ich vor Freude Luftsprünge machen soll oder ob ich verzweifeln soll, weil ich jetzt noch raus finden muss wie ich das ganze als pdf anstatt html und über HTTPS umsetzen kann.  ;D

Ich glaube jetzt freue ich mich aber erst einmal ne Runde und dann gehts weiter :P

Nichtsdestotrotz, VIELEN DANK für das vorzeitige Weihnachtsgeschenk! :P

Schöne Grüße euer
Oxy

Super, freut mich das es funktioniert.  :)

Wenn du das ganze per PDF als Ausgabe hin bekommst. Und dann noch mit einem schönen Template.
Daran wär ich auch interessiert! ;)
Mir fehlt hierfür leider gerade die Zeit um mich damit zu beschäftigen.

December 02, 2016, 01:00:30 PM #23 Last Edit: December 02, 2016, 02:31:41 PM by Oxygen61
Ja wenn ich da etwas hin bekomme, hätte ich euch eh bescheid gegeben. Solange wie ich aber den Zugriff über HTTPS nich hin bekomme, brauch ich mich nich um en PDF Template kümmern.. :-/

Warum muss es eigentlich die .cer/.pem Datei der CA sein und nicht die Datei des ausgestellten Zertifikats für die Webseite?
Ich hatte jetzt mittlerweile auch mit der Konvertierung vom DER Format auf das PEM Format versucht, dass Zertifikatsproblem zu lösen, aber keine Chance. Wenn man nur wüsste, wie Fabian das geschafft hatte mit seiner CA :D

Ich hatte das Ganze jetzt nochmal mit dem self signed Zertifikat von der OPNsense probiert.
Diesem Default Zertifikat, was ja seine eigene CA ist. Hab meine Weboberfläche darauf umgestellt und dann versucht client.rb mit dem .cer wie auch als .pem zu starten aber keine Chance. Funktionierte auch nicht. :-/

Bei mir Läuft eine interne CA, welche das Zertifikat für die Webkonfiguration ausgestellt hat. Ich verwende das öffentliche CA-Zertifikat für den Client.

December 12, 2016, 10:36:32 AM #25 Last Edit: December 12, 2016, 10:40:25 AM by Oxygen61
Hey Leute,

ich hab mich nochmal ordentlich hinter gesetzt und siehe da HTTPS funktioniert jetzt auch.  8)
Für alle die es vielleicht interessiert. Mein Fehler war, dass ich zum umkonvertieren der public Key .DER Datei Windoof mit openSSL-Win64 benutzt hatte und er mir zwar die Konvertierung immer durchführte aber "anscheinend nicht richtig".

Worauf man also achten muss:
1.) Internal-ca erstellen bei OPNsense (Create Internal Certificate Authority)
2.) Internes Zertifikat erstellen (Create Internal Certificate), (Type: Server Certificate), welches von der internal-ca unterschrieben wird.
3.) Webkonfigurations-Zertifikat mit dem Zertifikat ersetzen, welches man gerade erstellt hatte.
4.) Über den Internet Explorer  oben links auf das Schloss-Symbol klicken > Details > View Certificate > Zertifizierungspfad > internal-ca öffnen und in Datei kopieren. > Public-Key/Öffentliches Zertifikat "DER-codiert-binär (.CER)" exportieren.
5.) Jetzt der Knackpunkt: Noch funktioniert es nicht, daher mithilfe von Unix (OpenSSL) oder "https://www.sslshopper.com/ssl-converter.html" dieses Zertifikat auf ein .PEM umwandeln und als .crt abspeichern.
6.) Client.rb Konfig ändern auf die .crt Datei.
7.) Starten > aufstehen Kaffee holen, denn "Cool Guys Don't Look At Explosions"  8) 8)  ;)