#!/bin/sh# EN: Free for non-commercial use. Commersoal users must resive wriren permission of the author.
# RU: Свободна для некоммерческого использования. Коммерсанты должны получить письменное согласие автора.
crt_dir='/etc/ssl/certs'
out_dir=~
out_file="${out_dir}/my_ssl_certs.list"
out_list="${out_dir}/fingerprint.list"
rm -f "${out_file}" "${out_list}"
touch "${out_list}"
for c in `ls "${crt_dir}"`
do
#list=`openssl x509 -sha1 -modulus -noout -inform PEM -in "${crt_dir}/${c}"`
list=`openssl x509 -sha1 -fingerprint -noout -inform PEM -in "${crt_dir}/${c}"`
if [[ `grep "${list}" "${out_list}"` == '' ]]
then
echo "${list}" >> "${out_list}"
echo "${crt_dir}/${c}" >> "${out_file}"
openssl x509 -sha1 -subject -issuer -email -fingerprint -ocspid -ocsp_uri -serial -hash -modulus -alias -startdate -enddate -dates -purpose -pubkey -inform PEM -in "${crt_dir}/${c}" >> "${out_file}"
echo '
' >> "${out_file}"
fi
done
sort "${out_list}" |awk -F'=' '{print $2}' >"${out_list}_"
mv "${out_list}_" "${out_list}"
exit 0
Скрипт создает два файла в домашнем каталоге пользователя: my_ssl_certs.list и fingerprint.list
Эти файлы в теории должны быть одинаковы у всех пользователей сети Интернет во всем мире.
Расхождение определяем утелитой 'diff'.
В этом случае лучше меньше чем больше!
Расхождения возможны в следующих случаях:
1. Включение сертификатов фирм с пониженной социальной ответственностью: CAcert Inc. Я бы удалил..
2. Включение сертификатов социально безответственность фирм: Startcom, Wosign. Этих надо удалять!
3. ОДИН сертификат вашего антивирусника которому необходимо сделать MitM для сканирования на вирусы всего сетевого трафика включая HTTPS. Этот сертификат необходим, он должен создавался антивирусным ПО на вашем компе при настройке или на антивирусное шлюзе. Берегите секретный ключ этого сертификата! Сертификат может быть вообще единственный это нормально, тогда в скрипте надо указать каталог откуда берёт сертификаты антивирусных шлюз.
4. Остальные это вирусные для MitM. Удалять!