LINUX.ORG.RU
ФорумAdmin

проблемы с подписью сертификатов ssl squid

 , ,


0

2

Всем доброго времени суток! Задача: собрать прокси для блокировки порно, социалок и тд. Делалось все по данной статье: https://habrahabr.ru/post/168515/. Все собрал, прокси все блокирует, но есть некоторые https сайты, а именно: google.com, yahoo.com и т.д, с которыми конфликтует браузер Firefox, выводя ошибку

SEC_ERROR_UNKNOWN_ISSUER
. Причем в основном, внизу предлагалось добавить сайт в исключения, а на этих ресурсах данная опция не активна. Пытался сгенерировать сертифика и добавить в доверетильные, как было сказано в официальной документации: http://wiki.squid-cache.org/Features/DynamicSslCert

Данный сертификат использует squid:

openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout myCA.pem  -out myCA.pem

это сертификат генерируется на основы вышеописанного и импортирую в Firefox, во вкладку «Центры сертификации»:

penssl x509 -in myCA.pem -outform DER -out myCA.der

Но после импортирования в firefox, при загрузке страницы гуглф, вылетает ошибка:

SEC_ERROR_BAD_SIGNATURE

Также пытался добавить гугл в список исключений: Серверы -> Добавить исключения, но тоже не срабатывает. Если кто сталкивался или знает в чем проблема и что сделано не так, подскажите пожалуйста. Заранее спасибо!

зачем тебе перехватывать ssl для простой блокировки порно и социалок? наймите системного администратора

anonymous ()
Ответ на: комментарий от thesis

Вот конфиг сквида:

#
# Recommended minimum configuration:
#
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8	# RFC1918 possible internal network
acl localnet src 172.16.0.0/12	# RFC1918 possible internal network
acl localnet src 192.168.0.0/16	# RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT
#acl step1 at_step SslBump1
acl progs browser Chrome
acl progs browser Firefox
acl progs browser Opera

acl yt_clips url_regex .youtube\.com\/watch\?v=lr_m3GW5Cws
#acl block-sites dstdomain "/opt/squid/etc/block-sites.acl"
#acl bad url_regex -i "/opt/squid/etc/block-sites2.acl"
#deny_info http://krsu.edu.kg localnet
#
# Recommended minimum Access Permission configuration:
#

http_access deny yt_clips
http_access allow progs
#http_reply_access deny block-sites localnet
#http_reply_access deny bad localnet
# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager

# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost

# And finally deny all other access to this proxy
http_access deny all
cache_effective_user squid
cache_effective_group squid
redirect_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf

url_rewrite_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf
redirect_children 20

# Squid normally listens to port 3128
#http_port 3128
http_port 3128 ssl-bump cert=/opt/squid/etc/ssl_cert/squidCA.pem  generate-host-certificates=on dynamic_cert_mem_cache_size=4MB
ssl_bump all localhost
ssl_bump server-first all
sslcrtd_program /opt/squid/libexec/ssl_crtd -s /opt/squid/var/lib/ssl_db -M 4MB
sslcrtd_children 5
always_direct allow all
#sslproxy_cert_error allow all
sslproxy_cert_error deny all
sslproxy_flags DONT_VERIFY_PEER
ssl_bump allow all
ssl_bump bump all
# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /opt/squid/var/cache/squid 100 16 256

# Leave coredumps in the first cache dir
coredump_dir /opt/squid/var/cache/squid

# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	20%	4320

Rino256 ()
Ответ на: комментарий от Rino256

Вот что генерируется в

/opt/squid/var/lib/ssl_db/
-rw-r----- 1 squid squid 1677 Aug 24 13:31 102F9B8A.pem
-rw-r----- 1 squid squid 1677 Aug 24 13:31 102F9B8B.pem
-rw-r----- 1 squid squid 1669 Aug 24 13:35 102F9B8C.pem
-rw-r----- 1 squid squid 1673 Aug 24 13:35 102F9B8D.pem
-rw-r----- 1 squid squid 1673 Aug 24 13:35 102F9B8E.pem
-rw-r----- 1 squid squid 1677 Aug 24 13:51 102F9B8F.pem

Rino256 ()
Ответ на: комментарий от Rino256

Вот как выглядят в редакторе случайно выбранные сгенерированные сертификаты. 102F9B8F.pem

-----BEGIN CERTIFICATE-----
MIICBDCCAW0CBBAvm48wDQYJKoZIhvcNAQEFBQAwejELMAkGA1UEBhMCS0cxEDAO
BgNVBAgMB0Jpc2hrZWsxEDAOBgNVBAcMB0Jpc2hrZWsxDTALBgNVBAoMBElLSVQx
DTALBgNVBAsMBElLSVQxDjAMBgNVBAMMBVByb3h5MRkwFwYJKoZIhvcNAQkBFgpr
c0BtYWlsLnJ1MB4XDTE2MDgyMjA3NTEzNFoXDTE3MDgyMzA2MjUzN1owGDEWMBQG
A1UEAwwNNDAuNzQuMTMwLjI1NTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
0NH+Z2zeng/lAYB/OLDlVyKLlkOiToKscoFF9pzQpiPDAVDdzZqTGBi4LbUn40PJ
q6E7hCvHn8Vm5ZHPNh5t+/JpuLEiGxyF7igq/gJfUID1PouNbK5R3hgnPnjiOG/F
QLUK1vmRj1IFTN4BlJ4N/C38XFXdQiFw+F4UzZb4XCsCAwEAATANBgkqhkiG9w0B
AQUFAAOBgQBCvvBctFILzlzkHW+hZULyshRDEnEAcFmFgsEa1NCfsoy1vnmRO1pl
r26cUIQP+qOHJn+s6/JVEHUl/9huVI+Z8EqVY8hFpO8o75QHqOxY5z4FdZhxFr3B
TfQ9ARvYfJzVrwwsgyBv+Y4STYzMpnemDUY2LoGT5r/280hKWz1h6Q==
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANDR/mds3p4P5QGA
fziw5Vcii5ZDok6CrHKBRfac0KYjwwFQ3c2akxgYuC21J+NDyauhO4Qrx5/FZuWR
zzYebfvyabixIhsche4oKv4CX1CA9T6LjWyuUd4YJz544jhvxUC1Ctb5kY9SBUze
AZSeDfwt/FxV3UIhcPheFM2W+FwrAgMBAAECgYBWiwFNqeAlT98QHUocm6ugzi9d
qlAlC6Een5b4WwtaH64c6H/US0C1FuGWB+MtHBYDrIG3CFHmVHCNqj1fZ4MazTiU
nwbJcM84uSgZYmp/whbgDkfiGBwqxb6iudQU6XZCRYEbQ35sZSJra8qkYhE+2JF/
ASttmC+/jzyM0M5UiQJBAOj50fT2afHhssmSh0k4PoAbVCMoj4lQT0fD+ZnCUoFR
SEGXDnRB7qC5BnnDU4ohSso2h/YpkQDFjr1Kz0jn+vcCQQDldQyLJV0ArIfS5U/4
mGOJLpJ37WxVXV7gvJ3By4G1FGj9tUgfunRx7vzc7IHSo6EFEHju1INQobAoV6U5
KEdtAkB4uw1srk2UxWtLPh3Rec4ZwQ/G8HwBopaTECHG5oau8RpKsycQZCJvM7MB
YpFmIX6Kb9vhWwUDq10fByeIFn9dAkAr8mccn2NYpbK96b2PV2B4/bp/zbFaCDAL
yxRL8bY+AFK7hOTzbrqut58mkQWsWjqUxbrjw0ADSXR7xY2XjOdhAkEAiHv84uB+
Qd5rcYSAgzNJpntj0t1TxSswBw8N7X3QrFWGprEoXmSgdg7FIQvrzR3YG7OwhhGk
s7d41Lwz7XEy6Q==
-----END PRIVATE KEY-----

Rino256 ()
Ответ на: комментарий от Rino256

Вот как выглядят в редакторе случайно выбранные сгенерированные сертификаты.

Ты сам-то на него смотрел? Это же какой-то самоподписнцй мусор с айпишником вместо хостнейма.

thesis ★★★★★ ()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от Rino256

Если честно, у меня уже просто вариантов нет, почему именно от одних сайтов Firefox принимает сквидовский сертификат, а от google, yahoo- нет. Уже и в самом браузере по вырубал ssl, для хрома существует обход: запускать его с параметрами

--ignore-certificate-errors
. Опера вообще в упор не хочет признавать сертификаты

Rino256 ()
Ответ на: комментарий от Rino256

Я случайно проворонил насчет подписи, он все-таки не самоподписанный. Но в CN вместо хостнейма - айпишник. Посмотри браузером сертификат и перепроверь, совпадает ли имя сервера с тем, что в поле subject CN сертификата.

thesis ★★★★★ ()
Ответ на: комментарий от thesis

Я почистил старые сартификаты и зашел на news.yandex, соответственно принял сертификат, который оказался подозрительный для Firefox. В сертификате, который принял браузер, в разделе «Кому выдано» и в сгенерированным сквидом в папку

opt/squid/var/lib/ssl_db/certs 
поле CN совпадали, а когда пытался залезть в google.com, браузер выдал ошибку
SEC_ERROR_UNKNOWN_ISSUER
, при этой прокси никаких сертификатов в папке
certs
не генерировал.

Rino256 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.