Seite 1 von 1

Zugriff per webdav: Bibliothek M2Crypto wird nicht gefunden

Verfasst: 03 Feb 2021, 17:59
von test
Es geht um den WAN-Modus von Opsi. Ein Client wurde so eingestellt, dass er per Wabdav auf das Repository zugreift. U.a. wurde in der opsiclientd.conf

Code: Alles auswählen

verify_server_cert = True
gesetzt. Dateien aus dem Repository lassen sich per Webdav vom Server herunterladen. Daher liegt das Problem wohl beim Client.

Was sollte passieren?
Abgleich der Pakete und lokale Kopien in den Cache auf c:\opsi-org\cache\depot .
Was ist passiert?
Leere Ordner in c:\opsi-org\cache\depot , Fehlermeldung in opsiclientd.log:

Code: Alles auswählen

[6] [2021-02-03 10:29:29.364] [event processing user_login             ] Starting ServiceConnectionThread, timeout is 30 seconds   (OpsiService.py:170)
[6] [2021-02-03 10:29:29.366] [service connection                      ] Server verification enabled, using cert file 'C:\opsi.org\opsiclientd\server-certs\<servername>.pem'   (OpsiService.py:328)
[5] [2021-02-03 10:29:29.367] [service connection                      ] Connecting to config server 'https://<servername>:4447' #1   (OpsiService.py:339)
[6] [2021-02-03 10:29:29.368] [service connection                      ] Server verfication by server certificate enabled for host '<servername>'   (HTTP.py:289)
[6] [2021-02-03 10:29:29.876] [control server                          ] client connection made   (Message.py:498)
[6] [2021-02-03 10:29:31.437] [                                        ] Encoding authorization   (HTTP.py:472)
[2] [2021-02-03 10:29:31.438] [                                        ] Cannot verify server based on certificate file 'C:\opsi.org\opsiclientd\server-certs\<servername>.pem': No module named 'M2Crypto'   (HTTP.py:488)
Vermute, dass es sich letztendlich auf import M2Crypto in der Funktion encryptWithPublicKeyFromX509CertificatePEMFile in OPSI/Util/__init__.py bezieht, die in OPSI/Util/HTTP.py aufgerufen wird. (Könnte das evtl. an der Python-Version 3 liegen?? Auf der Seite https://www.xspdf.com/resolution/56740235.html heißt es, M2Crypto wird nicht mehr in Python 3 unterstützt. Hoffe natürlich, dass die Lösung einfacher ist, z.B. ein Fehler von mir. ;) )

Mit welchen Schritten kann das Problem nachgestellt werden?
1. Opsi Server so einrichten, dass er Webdav "ausliefert"
2. Host Parameter im Opsi Configed ändern:

Code: Alles auswählen

opsiclientd.event_gui_startup.active	false
opsiclientd.event_gui_startup{user_logged_in}.active	false
opsiclientd.event_net_connection.active	  true
opsiclientd.event_timer.active	   true
3. opsiclientd.conf auf Client:

Code: Alles auswählen

verify_server_cert = True
4. Ein Produkt auf setup stellen und Client neu starten.
Danach sollte die Fehlermeldung mit M2Crypto in c:\opsi.org\log\opsiclientd.log sein.

Bei welchen Versionen der beteiligten Komponenten tritt das Problem auf?
Client: Opsi Client Agent: 4.1.1.16-2
(Nachtrag: Selber Effekt bei Opsi Client Agent: 4.1.1.29-1)

Server:
opsiconfd-4.1.1.20-1.5.noarch
opsi-linux-bootimage-20201105-1.1.noarch
opsi-tftp-hpa-server-5.2.8-53.1.x86_64
opsipxeconfd-4.1.1.20-3.2.noarch
opsi-utils-4.1.1.36-1.2.noarch
python-opsi-4.1.1.97-1.1.noarch
opsi-configed-4.0.7.6.34-2.8.noarch
opsi-server-4.1.1.8-1.4.noarch

Nachtrag: Anderer Fehler mit Opsi Client 4.1.1.30-1 - unexpected keyword argument 'verifyServerCert'

Verfasst: 28 Apr 2021, 17:55
von test
Mit opsi-client-agent 4.1.1.30-1 kommt ein anderer Fehler:

Code: Alles auswählen

(15068)   [3] [2021-04-28 14:04:49.977] [product cache service                   ] Failed to cache product opsi-winst: __init__() got an unexpected keyword argument 'verifyServerCert'   (CacheService.py:1156)
(15069)   Traceback (most recent call last):
(15070)     File "opsiclientd\nonfree\CacheService.py", line 1060, in _cacheProduct
(15071)     File "opsiclientd\nonfree\CacheService.py", line 1037, in _getRepository
(15072)     File "OPSI\Util\Repository.py", line 73, in getRepository
(15073)     File "OPSI\Util\Repository.py", line 1087, in __init__
(15074)     File "OPSI\Util\Repository.py", line 972, in __init__
(15075)     File "OPSI\Util\HTTP.py", line 616, in getSharedConnectionPool
(15076)   TypeError: __init__() got an unexpected keyword argument 'verifyServerCert'

Re: Zugriff per webdav: Bibliothek M2Crypto wird nicht gefunden

Verfasst: 29 Apr 2021, 09:40
von wolfbardo
Leider funktioniert

Code: Alles auswählen

verify_server_cert = True
in opsi 4.1 nicht.

Unter opsi 4.2 (serverseite) mit aktuellem opsi-client-agent (derzet 4.1.1.30-1) sollte es wieder gehen.

Gruss
Bardo Wolf