The networking is broken. Let's fix it. As you might already know, SSL and certificates do not work on Mac OS X 10.6 anymore. Since this is the last version to officially support Intel 32-bit CPUs, it is crucial for some computers to have a functional networking on 10.6, in case you want to use them. I am writing this because I want a *definitive* guide on such, and for future reference. This assumes you are running on i386 Mac - if you are not (for example, 64-bit) then do not follow this guide and update to Mac OS X 10.7 or higher. If that is not possible, then please note you will need to change several commands (that I will not document) in order to make it work for you correctly. NOTE: If links do not work, or you cannot download files from your macbook, download them on another device and insert on a USB drive formated to HFS+, for example in Linux. Drag and drop all the needed files from the USB to your Mac and proceed with everything. Before you can start installing XCode, we will update some certificates first. Open this link and download the file: => http://x1.i.lencr.org/ Now, open the Keychain Access app and drag this file into the System folder in the app. Click on the certificate, and in the trust menu change the defaults to "Always trust". This should give some fixes to the websites, but won't be enough yet. Now install the legacy mac proxy: => https://jonathanalland.com/downloads/legacy-mac-proxy.dmg Install the package. This should give your Mac a good web browsing life now and allow us to download directly from the computer. With that done, let us start by installing the newest XCode version. Snow Leopard supports 4.2.2, but since that release is hidden on the Apple Developer website for non-developers, we will download from the Internet Archive instead: => https://archive.org/download/xcode_4.2_for_snow_leopard/xcode_4.2_for_snow_leopard.dmg With this downloaded, run in and install XCode with all the tools (iOS SDK should not be needed, but the others are). After doing so, you should have a working XCode copy. Great! Now proceed to installing Macports. Macports is useful. Even if you do not use it, installing old software on OS like this is pretty much only this compatible on Macports. Download the Snow Leopard .dmg and install the package: => https://github.com/macports/macports-base/releases/download/v2.10.5/MacPorts-2.10.5-10.6-SnowLeopard.pkg After all this, update Macports in the terminal: ``` sudo port -v selfupdate ``` Now you are fully ready for the next step. You will need to install OpenSSL and link it as the executable, but not override the system one, because that could lead to issues. To circumvent this, we will be installing into a different directory. ``` curl -kO https://www.openssl.org/source/openssl-1.0.2u.tar.gz ``` Unpack the archive and cd into the directory using the terminal. You will need to configure for your architecture: ``` ./Configure darwin-i386-cc shared --prefix=/usr/local/openssl-32 ``` After that, compile openssl: ``` make depend make sudo make install ``` Afterwards make sure to add the environment variables to your bash profile: ``` export PATH="/usr/local/openssl-32/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/openssl-32/lib:$LD_LIBRARY_PATH" export CPATH="/usr/local/openssl-32/include:$CPATH" export ARCHFLAGS="-arch i386" ``` ...and source it: ``` source .bash_profile ``` This should help. But it won't work yet. Time to install curl: ``` curl -kO https://curl.se/download/curl-7.76.1.tar.gz ``` Then, unpack and cd into the directory, and configure the compilation: ``` CFLAGS="-m32" LDFLAGS="-m32" ./configure --disable-shared --enable-static --with-ssl=/usr/local/openssl-32 --with-ca-bundle=/usr/local/openssl-32/cacert.pem --host=i386-apple-darwin10 make -j 2 # Replace this with the number of your cores: 1 or 2 sudo make install ``` Now, let us check if it successfully installed: ``` file /usr/local/bin/curl ``` If this yearns something containing `i386` and not an error, then it is all right. Now, proceed to installing the certificate: ``` curl -kO /usr/local/openssl-32/cacert.pem https://curl.se/ca/cacert.pem ``` Add the following to your bash profile: ``` export SSL_CERT_FILE=/usr/local/openssl-32/cacert.pem ``` We are ever closer. This won't work yet too, because we need to update the linking: ``` echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile source ~/.bash_profile ``` If running the following command returns a string containing "libssl.1.0.0.dylib", then it works. If it does not, restart your terminal or/and computer and try again: ``` otool -L /usr/local/bin/curl ``` Also refresh the cache just to be sure: ``` sudo update_dyld_shared_cache ``` Now, if the following is output after "curl --version" then you are golden: ``` curl 7.76.1 (i386-apple-darwin10) Release-Date: 2021-04-14 Protocols: dict file ftp ftps gopher http https... Features: AsynchDNS HTTPS-proxy IPv6 Largefile libz NTLM SSL UnixSockets SSL: OpenSSL/1.0.2u ``` Now, this will *still* probably not work. You will need to add the following into your bash profile: ``` export CURL_CA_BUNDLE="/usr/local/openssl-32/cacert.pem" export HTTPS_PROXY="" export REQUESTS_CA_BUNDLE="="/usr/local/openssl-32/cacert.pem" ``` And if that did not work, also add this: ``` export OPENSSL_CONF="="/usr/local/openssl-32/openssl.conf" ``` Source the profile. Test with curl and openssl: ``` curl -v https://example.com openssl s_client -connect example.com:443 -CAfile /usr/local/openssl-32/cacert.pem ``` Both should return code 0. If there are errors, try following the guide from the start and seeing if you made any errors. Also try restarting the terminal or/and computer. Other troubleshooting includes giving permissions: ``` sudo chmod 644 /usr/local/openssl-32/cacert.pem sudo chown $USER /usr/local/openssl-32/cacert.pem ``` You can also update the date and clock in system preferences. This should fix some issues too. If that too did not work, try disabling the proxy temporarily and checking the certificates in keychain access for whether or not they are "allowed all". Well, that should be it. This worked for me and now I can not only brows the web but also play games and use utilities with curl. This will not fix everything, though: several things will keep on not working anyway, and you must accept it. For example, the App Store still doesn't work for me, and old web browsers will keep on displaying many pages incorrectly due to old web standards. Also note that, even though you compiled the newest possible version, curl and openssl are from 2019 and 2021 respectively. As this ages on, these tools might not work anyway. In case that happens, this guide might prove useless. Anyway, I hope you fixed SSL just like me.