Ich bin ein Server implementieren, die SSL-Zertifikat ohne Neustart neu laden kann. Als Ergebnis muss ich eine neue SSL_CTX erstellen, um die alte zu ersetzen. Gibt es jedoch, wenn noch einige SSL-Sitzungen existieren (erstellt von früheren SSL_CTX), ist es sicher, die alte zu befreien? Oder muss ich dafür eine Technik wie Referenzzählung verwenden?Ist es sicher, SSL_CTX nach dem Erstellen von SSL freizugeben
Antwort
Oder muss ich eine Technik wie Referenzzählung verwenden, um dies zu tun?
OpenSSL verwendet bereits Referenzzählung, so dass Sie keine eigenen implementieren müssen. SSL_CTX_free verringert nur den Referenzzähler und gibt nur dann den Speicher frei, wenn noch kein Objekt diesen CTX verwendet. Von der documentation of SSL_CTX_free:
SSL_CTX_free() den Referenzzähler von ctx dekrementiert, und entfernt das SSL_CTX Objekt durch ctx zeigte und den zugewiesenen Speicher freigibt, wenn die der Referenzzähler 0
erreicht hat Er fordert außerdem die kostenlose() Prozeduren für indirekt betroffene Elemente, falls zutreffend: der Sitzungs-Cache, die Liste der Chiffren, die Liste der Client-CAs, die Zertifikate und Schlüssel.
Danke. Das ist wirklich praktisch, da OpenSSL bereits die Aufgabe für mich erledigt hat. –
- 1. Wie Netty Puffer sicher freizugeben?
- 2. Ist es möglich, Speicher teilweise freizugeben?
- 3. OpenSSL: Kann SSL_CTX * nicht mit SSL_CTX_new() erstellen
- 4. Ist es sicher, das iOS Enterprise Distribution Certificate für externe Entwickler freizugeben?
- 5. Ist es in Ordnung, 'void *' freizugeben?
- 6. Ist grundlegende Authentifizierung mit SSL sicher genug?
- 7. Ist es sicher, DateTime() von GET zu erstellen?
- 8. Was ist die richtige Art, Ausgabepuffer nach dem Aufruf von openssl :: i2d_X509 freizugeben?
- 9. Verwenden einer RESTful API - Ist es sicher?
- 10. Ist es sicher, einen RCW von einem Finalizer aus aufzurufen?
- 11. ist es sicher? Einfügen der Daten in db nach Benutzer ..?
- 12. Ist es sicher, TWinControl.Update von TGraphicControl.Paint aufzurufen?
- 13. React/Redux - Ist es sicher zu Massage vor dem Rendern
- 14. Ist es sicher, Screen.hide() nach Screen.dispose() in LibGDX aufzurufen?
- 15. Ist es sicher, Dateien in einen Ordner auf dem Server
- 16. Ist es sicher, dem benutzerdefinierten Beitragstyp ein weiteres Feld hinzuzufügen?
- 17. SSL-Zertifikat nicht nach dem Datum falsch
- 18. Konstruktorproblem delegieren - Ist es sicher?
- 19. Meteor - Wie sicher ist es?
- 20. Ist es möglich, eine Variable in C# freizugeben?
- 21. Erhaltene fatale Warnung: handshake_failure auch nach dem Deaktivieren von SSL
- 22. SSL-Verbindung nach dem Entfernen des Zertifikats aus dem Geschäft
- 23. Es kann keine CGContextRef (im Kontext von einem CGLayer ist) freizugeben
- 24. Ist es sicher, Speicher neu zuzuweisen?
- 25. Ist es sicher, javax.xml.ws.Service-Objekte wiederzuverwenden?
- 26. Ist es sicher, Makroaufrufe zu verschachteln?
- 27. Ist es sicher, auf dieselbe URL umzuleiten?
- 28. Nach dem Erstellen, Rolle
- 29. Ausführen von gvfs nach dem Erstellen
- 30. PHP Mcrypt, wie sicher ist es wirklich?
Es ist schwer zu sagen im Moment. Wir müssen Ihren Code sehen und wie und wann Sie den Kontext freigeben. – jww