- Frank Goossens’ blog
- (futtta’s Twitterless twaddle)
- How to fix SSL errors in Mac OS X browsers
- 14 thoughts on “ How to fix SSL errors in Mac OS X browsers ”
- Leave a Reply Cancel reply
- Почему возникают ошибки SSL-соединения и как их исправить?
- Что такое SSL?
- Причины возникновения ошибок SSL-соединения
- Проблемы с датой и временем
- Ненадежный SSL-сертификат
- Брандмауэр или антивирус, блокирующие сайт
- Включенный экспериментальный протокол QUIC
- Отсутствие обновлений операционной системы
- Использование SSL-сертификата версии 3.0
- Ошибки «Invalid CSR» при генерации сертификата из панели управления облачного провайдера
Frank Goossens’ blog
(futtta’s Twitterless twaddle)
How to fix SSL errors in Mac OS X browsers
So you know about SSL (or rather TLS) and you prefer things secure, so you request and pay for an officially signed certificate and configure your Apache to use it. The next days you’re feeling very Kevin Mitnicky, until some nitwit on Twitter trashes you for the ugly error-message he sees when trying to visit your supposedly “secure” site that is. What’s up with that?
Well, chances are that your disgruntled visitor was using a browser you didn’t test on, like Chrome on Mac for example? Because there is a small issue you have to take into account when “doing https”; both Chrome and Safari (but not Firefox) on Mac use OS X’s keychain, which does not have some of the intermediate certificates needed to establish the trust relationship between your signed certificate and the certificate authority’s root certificate.
As you can’t expect Apple to add intermediate certificates to their keychain by default (which Firefox does a pretty good job though) and you can’t ask all your OS X users to add the intermediate certificate by hand either, you’ll have to solve this yourself. A good thing Apache can help you in that department with it’s SSLCertificateChainFile directive, which
sets the optional all-in-one file where you can assemble the certificates of Certification Authorities (CA) which form the certificate chain of the server certificate. This starts with the issuing CA certificate of the server certificate and can range up to the root CA certificate.
If there’s only one intermediate certificate missing between your’s and the CA’s, you can export it in good old Firefox (as a pem-file), place it in the same directory as the actual certificate and use SSLCertificateChainFile to tell Apache where to find it and that should solve the nasty errors those Twittering Mac-heads get.
14 thoughts on “ How to fix SSL errors in Mac OS X browsers ”
Ehm… If I remember from my last reading of the TLS spec, you’re _supposed_ to list all intermediate certificates between you and your trust anchor. This strikes me as the only way it can work too (provided you subscribe to the idea that PKI can “work” at all — outside a fully managed organization).
Do you read the spec differently?
Please read RFC 5246 7.4.2. My interpretation is that _only_ the root certificate may be omitted, since one may assume that the client will already have it. There is nothing there about assuming that the client will have any intermediate certificates too.
As I wrote earlier: this also strikes me as the only reasonable interpretation. In general, you don’t want your root certificates to directly sign leaf certificates. You want your root certificates to live somewhere offline, and delegate authority to intermediate certificates.
So — don’t blame Apple I think. You just misconfigured your webservers because you read “optional” as “don’t need it”.
thanks for the info Philip, that’s an obvious reason for the errors we got. guess we’re just too spoiled with other browsers/ os’es that do come with intermediate certificates of e.g. verisign 😉
Calling it “spoiled” is a completely different discussion, I think.
The way PKI is currently deployed on “the web” is fundamentally broken. On the one hand, you have client software conflating “trust” with “validity”, and on the other you have completely untrustworthy “trusted third parties”.
Web browsers should not ship with root certificates in the first place. Shipping intermediate certificates too is only making the problem worse.
Unless the world can come up with a working “trusted third party” model, the only way TLS can work, is the way SSH does: asking to verify fingerprints out of band.
I’m afraid you completely misunderstood this part of SSL.
As a webserver administrator you are *REQUIRED* to use SSLCertificateChainFile to list all intermediate certificates. If you do not, you get the error you posted. This is true for *ALL* browsers, regardless of the OS or brand of browser.
However, if you would surf to another site that uses the same certificate authority, the browser can save these intermediate certificates so it does not need to redownload them in case another site wishes to use the same intermediate certificates.
This means that if your webserver administrator forgets the SSLCertificateChainFile he/she might not notice it as the intermediate certificate might already present in his browser. Although the site seems to be working, the configuration is incorrect.
So, to summarize, your conclusion is incorrect. This is a problem for all browsers on all operating systems, the only correct conclusion is that if you forget the SSLCertificateChainFile you might not notice it if your browser already has a cached version from another site.
you’re absolutely right peter; i created a new user and installed a clean version of firefox, there’s no intermediate certificates to be found. these are added while surfing and are listed as being in the “software security device”, whereas root certs are in the “builtin object token”.
I’m not sure I understand this “optimization” of not having to “download” the intermediate certificates again.
The intermediate certificates are sent as part of the server hello message in the TLS handshake. A client has no control over whether or not they are ‘downloaded’ again: they’re pushed.
Why would a client want to cache them?
Hello. I am having trouble with this SSL thing.
So on the left corner of the link, there’s like a paper icon that is folded on the right corner. Then I tried to click it and its says:
“The identity of this website has not been verified”
“Your connection is not encrypted”
“You have never visited this site before”
I have a MacBook (white one) and its really pissing me off. Whenever I try to tinychat with my friends and it says “Allow or Deny” your mic, it just stucks right there. I dont know how to fix this. Can someone please help me AS SOON AS POSSIBLE? Please this is driving me crazy 🙁
Sounds like a Flash permission problem to me Allyza. Go to Flash privacy settings and make sure tinychat.com is set to allow all (if you do trust them, that is 😉 ), that might solve your problems. Hope this helps.
OMG OMG. THANK YOU SO MUCH! ITS WORKING NOW! THANKS A LOOOOOT FRANK! 😀
you’re welcome 🙂 have fun!
how do i fix SSL connection error 107 on a Macbook pro? PLEASE HELP IMMEADIATLY. I have a presentation due its 60% of my grade and its on google docs which I cant log into BECAUSE OF THIS STUPID ERROR!
PLEASE PLEASE PLEASE SOMEONE HELPPPPP MEEEEEEEEE 🙁
Have you tried rebooting? Sometimes it’s a Keychain problem. Try opening the Keychain app, and see if it hangs. If it is so, repair permission with Disk Utility and then reboot. It worked for me (happened twice on my MBA).
hope this helps, best of luck!
Leave a Reply Cancel reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Источник
Почему возникают ошибки SSL-соединения и как их исправить?
Зачастую после установки SSL-сертификатов многие пользователи сталкиваются с ошибками, которые препятствуют корректной работе защищенного протокола HTTPS.
Предлагаем разобраться со способами устранения подобных ошибок.
Что такое SSL?
SSL (Secure Socket Layer) — это интернет-протокол для создания зашифрованного соединения между пользователем и сервером, который гарантирует безопасную передачу данных.
Когда пользователь заходит на сайт, браузер запрашивает у сервера информацию о наличии сертификата. Если сертификат установлен, сервер отвечает положительно и отправляет копию SSL-сертификата браузеру. Затем браузер проверяет сертификат, название которого должно совпадать с именем сайта, срок действия сертификата и наличие корневого сертификата, выданного центром сертификации.
Причины возникновения ошибок SSL-соединения
Когда сертификат работает корректно, адресная строка браузера выглядит примерно так:
Но при наличии ошибок она выглядит несколько иначе:
Существует множество причин возникновения таких ошибок. К числу основных можно отнести:
- Некорректную дату и время на устройстве (компьютер, смартфон, планшет и т.д.);
- Ненадежный SSL-сертификат;
- Брандмауэр или антивирус, блокирующие сайт;
- Включенный экспериментальный интернет-протокол QUIC;
- Отсутствие обновлений операционной системы;
- Использование SSL-сертификата устаревшей версии 3.0;
- Появление ошибки «Invalid CSR» при генерации сертификата из панели управления облачного провайдера.
Давайте рассмотрим каждую из них подробнее.
Проблемы с датой и временем
Если на устройстве установлены некорректные дата и время, ошибка SSL-соединения неизбежна, ведь при проверке сертификата происходит проверка срока его действия. Современные браузеры умеют определять такую ошибку самостоятельно и выводят сообщение о неправильно установленной дате или времени.
Для исправления этой ошибки достаточно установить на устройстве актуальное время. После этого необходимо перезагрузить страницу или браузер.
Ненадежный SSL-сертификат
Иногда при переходе на сайт, защищенный протоколом HTTPS, появляется ошибка «SSL-сертификат сайта не заслуживает доверия».
Одной из причин появления такой ошибки, как и в предыдущем случае, может стать неправильное время. Однако есть и вторая причина — браузеру не удается проверить цепочку доверия сертификата, потому что не хватает корневого сертификата. Для избавления от такой ошибки необходимо скачать специальный пакет GeoTrust Primary Certification Authority, содержащий корневые сертификаты. После скачивания переходим к установке. Для этого:
- Нажимаем сочетание клавиш Win+R и вводим команду certmgr.msc, жмем «Ок». В Windows откроется центр сертификатов.
- Раскрываем список «Доверенные корневые центры сертификации» слева, выбираем папку «Сертификаты», кликаем по ней правой кнопкой мышки и выбираем «Все задачи — импорт».
- Запустится мастер импорта сертификатов. Жмем «Далее».
- Нажимаем кнопку «Обзор» и указываем загруженный ранее сертификат. Нажимаем «Далее»:
- В следующем диалоговом окне указываем, что сертификаты необходимо поместить в доверенные корневые центры сертификации, и нажимаем «Далее». Импорт должен успешно завершиться.
После вышеперечисленных действий можно перезагрузить устройство и проверить отображение сайта в браузере.
Брандмауэр или антивирус, блокирующие сайт
Некоторые сайты блокируются брандмауэром Windows. Для проверки можно отключить брандмауэр и попробовать зайти на нужный сайт. Если SSL-сертификат начал работать корректно, значит дело в брандмауэре. В браузере Internet Explorer вы можете внести некорректно работающий сайт в список надежных и проблема исчезнет. Однако таким образом вы снизите безопасность своего устройства, так как содержимое сайта может быть небезопасным, а контроль сайта теперь отключен.
Также SSL может блокировать антивирусная программа. Попробуйте отключить в антивирусе проверку протоколов SSL и HTTPS и зайти на сайт. При необходимости добавьте сайт в список исключений антивируса.
Включенный экспериментальный протокол QUIC
QUIC — это новый экспериментальный протокол, который нужен для быстрого подключения к интернету. Основная задача протокола QUIC состоит в поддержке нескольких соединений. Вы можете отключить этот протокол в конфигурации вашего браузера.
Показываем как отключить QUIC на примере браузера Google Chrome:
- Откройте браузер и введите команду chrome://flags/#enable-quic;
- В появившемся окне будет выделен параметр: Experimental QUIC protocol (Экспериментальный протокол QUIC). Под названием этого параметра вы увидите выпадающее меню, в котором нужно выбрать опцию: Disable.
- После этого просто перезапустите браузер.
Этот способ работает и в Windows и в Mac OS.
Отсутствие обновлений операционной системы
Проблемы с SSL-сертификатами могут возникать и из-за того, что на вашей операционной системе давно не устанавливались обновлений. Особенно это касается устаревших версий Windows (7, Vista, XP и более ранние). Установите последние обновления и проверьте работу SSL.
Использование SSL-сертификата версии 3.0
Некоторые сайты используют устаревший SSL-протокол версии 3.0, который не поддерживают браузеры. По крайней мере, по умолчанию. Чтобы браузер поддерживал устаревший SSL необходимо сделать следующее (на примере браузера Google Chrome):
- Откройте браузер и перейдите в раздел «Настройки».
- Прокрутите страницу настроек вниз и нажмите «Дополнительные».
- В разделе «Система» найдите параметр «Настройки прокси-сервера» и кликните на него.
- Откроется окно. Перейдите на вкладку «Дополнительно».
- В этой вкладке вы увидите чекбокс «SSL 3.0».
- Поставьте галочку в чекбоксе, нажмите кнопку «Ок» и перезагрузите браузер.
Ошибки «Invalid CSR» при генерации сертификата из панели управления облачного провайдера
В процессе активации сертификата можно столкнуться с ошибкой «Invalid CSR». Такая ошибка возникает по следующим причинам:
Источник