Come aggiornare OpenSSL in OS X?

120

Oggi l' heartbleed exploit OpenSSL è stato annunciato in natura, che consente a un utente malintenzionato di rilevare e rubare in modo surrettizio le chiavi del server privato (consentendole di utilizzare MitM e decrittografare i dati crittografati e rubare le password). Questo riguarda le versioni OpenSSL incluso 1.0.1f che è la versione sul mio computer Mavericks aggiornato Mac (perché ho usato port / brew per installare altro software che ha aggiornato il mio openssl senza che me ne rendessi conto it ):

$ openssl version
OpenSSL 1.0.1f 6 Jan 2014

Questo dimostra che non sto usando la versione Mavericks di OpenSSL:

$ which openssl
/opt/local/bin/openssl

OpenSSL ha rilasciato una correzione oggi in 1.0.1g e mi chiedo come posso ottenere questa versione fissa installata sulla mia versione attuale ?

    
posta dr jimbob 08.04.2014 - 06:25
fonte

4 risposte

143

Per quello che vale, ho appena usato homebrew ( link ):

brew update  
brew install openssl  
brew link --force openssl 
openssl version -a  

Se viene visualizzata una delle versioni errate (1.0.1a-f), puoi capire quale versione di openssl stai usando, in questo modo:

which openssl

Spesso questo è da / usr / bin. Per assicurarti di ottenere la versione aggiornata, rilascia un link simbolico in / usr / local / bin per puntare all'apertsl aggiornato, in questo modo:

ln -s /usr/local/Cellar/openssl/1.0.1g/bin/openssl /usr/local/bin/openssl

In alternativa a questo passaggio finale, alcune persone sostituiscono lo openssl in /usr/bin con un link simbolico a /usr/local/Cellar/openssl/1.0.1g/bin/openssl (o qualunque sia la tua versione):

mv /usr/bin/openssl /usr/bin/openssl_OLD  
ln -s /usr/local/Cellar/openssl/1.0.1g/bin/openssl /usr/bin/openssl

Ma questo è noto per causare problemi con alcune versioni più recenti di OSX. Meglio inserire semplicemente un nuovo symlink in / usr / local / bin, che dovrebbe avere la precedenza sul proprio percorso su / usr / bin.

    
risposta data 08.04.2014 - 06:46
fonte
13

O per coloro che utilizzano le porte Mac e non sono preoccupati di mantenere la versione

sudo port upgrade openssl

simples: -)

    
risposta data 08.04.2014 - 18:39
fonte
6

Per la risoluzione della estensione della richiesta di stato OCSP crescita della memoria illimitata (CVE-2016-6304) su macOS Sierra utilizzando brew con System Integrity Protection abilitato:

  1. Regola temporaneamente i permessi su /usr/local in modo che brew possa aggiornare:

    sudo chgrp -R admin /usr/local
    sudo chmod -R g+w /usr/local
    
  2. Installa la versione aggiornata di OpenSSL (probabilmente vuoi 1.0.2i):

    brew install openssl
    
  3. Potrebbe essere necessario / necessario eliminare un collegamento simbolico esistente a openssl da /usr/local/bin :

    rm /usr/local/bin/openssl
    
  4. Ricollega la versione di brew appropriata:

    sudo ln -s /usr/local/Cellar/openssl/1.0.2i/bin/openssl /usr/local/bin/openssl
    
  5. Ripristina le autorizzazioni originali su /usr/local/bin :

    sudo chown root:wheel /usr/local
    
risposta data 22.09.2016 - 19:51
fonte
1

Chi non desidera utilizzare brew o porte e desidera semplicemente sostituire l'installazione predefinita di OpenSSL 0.9.8 può sempre disabilitare la protezione dell'integrità del sistema riavviandosi in modalità di ripristino (cmd + R) ed emettendo

csrutil disable

e successivamente compilare openssl con

./config --prefix=/usr
make install

Ha sostituito con successo OpenSSL in ElCapitan per me e sono stato in grado di compilare curl e apache httpd 2.4 senza alcun problema direttamente dalle fonti. Il ragionamento alla base del metodo che alcuni potrebbero considerare drastici è che ElCapitan non è più gestito da Apple e non sono previsti aggiornamenti, quindi probabilmente non si romperà. In secondo luogo, ti salva dal puntare alla cartella openssl in / usr / local per ogni programma che compili rendendo la compilazione più solida.

    
risposta data 16.05.2018 - 00:07
fonte

Leggi altre domande sui tag