it
This commit is contained in:
		
							parent
							
								
									a261d706c8
								
							
						
					
					
						commit
						51902e3155
					
				
							
								
								
									
										2
									
								
								cache/crtsh/app_fleischkombinat-ost_de.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/app_fleischkombinat-ost_de.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
			
		||||
{"domain":"app.fleischkombinat-ost.de","first_cached":"2025-09-14T21:11:17.304989+00:00","last_upstream_query":"2025-09-14T21:11:17.304992+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"app.fleischkombinat-ost.de","name_value":"app.fleischkombinat-ost.de","id":19374493240,"entry_timestamp":"2025-07-01T14:09:36.354","not_before":"2025-07-01T13:11:00","not_after":"2025-09-29T13:10:59","serial_number":"0693231ff5e3212cabc2588e38b5d8337528","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"app.fleischkombinat-ost.de","name_value":"app.fleischkombinat-ost.de","id":19374489847,"entry_timestamp":"2025-07-01T14:09:30.117","not_before":"2025-07-01T13:11:00","not_after":"2025-09-29T13:10:59","serial_number":"0693231ff5e3212cabc2588e38b5d8337528","result_count":2}]}
 | 
			
		||||
{"domain":"app.fleischkombinat-ost.de","first_cached":"2025-09-14T21:11:17.304989+00:00","last_upstream_query":"2025-09-15T09:15:09.273000+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"app.fleischkombinat-ost.de","name_value":"app.fleischkombinat-ost.de","id":19374493240,"entry_timestamp":"2025-07-01T14:09:36.354","not_before":"2025-07-01T13:11:00","not_after":"2025-09-29T13:10:59","serial_number":"0693231ff5e3212cabc2588e38b5d8337528","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"app.fleischkombinat-ost.de","name_value":"app.fleischkombinat-ost.de","id":19374489847,"entry_timestamp":"2025-07-01T14:09:30.117","not_before":"2025-07-01T13:11:00","not_after":"2025-09-29T13:10:59","serial_number":"0693231ff5e3212cabc2588e38b5d8337528","result_count":2}]}
 | 
			
		||||
							
								
								
									
										2
									
								
								cache/crtsh/coturn_ms-it-services_de.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/coturn_ms-it-services_de.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
			
		||||
{"domain":"coturn.ms-it-services.de","first_cached":"2025-09-14T21:03:44.169328+00:00","last_upstream_query":"2025-09-14T21:03:44.169332+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"coturn.ms-it-services.de","name_value":"coturn.ms-it-services.de","id":14781803935,"entry_timestamp":"2024-10-03T09:53:12.473","not_before":"2024-10-03T08:54:42","not_after":"2025-01-01T08:54:41","serial_number":"0395c04e522a2715eebcb7fc4ffb3da1fdba","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"coturn.ms-it-services.de","name_value":"coturn.ms-it-services.de","id":14781794097,"entry_timestamp":"2024-10-03T09:53:12.142","not_before":"2024-10-03T08:54:42","not_after":"2025-01-01T08:54:41","serial_number":"0395c04e522a2715eebcb7fc4ffb3da1fdba","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"coturn.ms-it-services.de","name_value":"coturn.ms-it-services.de","id":14773518990,"entry_timestamp":"2024-10-02T19:20:49.687","not_before":"2024-10-02T18:22:19","not_after":"2024-12-31T18:22:18","serial_number":"04f26242ac1b2ac659ac2e19ae2522ce3274","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"coturn.ms-it-services.de","name_value":"coturn.ms-it-services.de","id":14773501988,"entry_timestamp":"2024-10-02T19:20:49.356","not_before":"2024-10-02T18:22:19","not_after":"2024-12-31T18:22:18","serial_number":"04f26242ac1b2ac659ac2e19ae2522ce3274","result_count":2}]}
 | 
			
		||||
{"domain":"coturn.ms-it-services.de","first_cached":"2025-09-14T21:03:44.169328+00:00","last_upstream_query":"2025-09-15T08:33:17.764021+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"coturn.ms-it-services.de","name_value":"coturn.ms-it-services.de","id":14781803935,"entry_timestamp":"2024-10-03T09:53:12.473","not_before":"2024-10-03T08:54:42","not_after":"2025-01-01T08:54:41","serial_number":"0395c04e522a2715eebcb7fc4ffb3da1fdba","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"coturn.ms-it-services.de","name_value":"coturn.ms-it-services.de","id":14781794097,"entry_timestamp":"2024-10-03T09:53:12.142","not_before":"2024-10-03T08:54:42","not_after":"2025-01-01T08:54:41","serial_number":"0395c04e522a2715eebcb7fc4ffb3da1fdba","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"coturn.ms-it-services.de","name_value":"coturn.ms-it-services.de","id":14773518990,"entry_timestamp":"2024-10-02T19:20:49.687","not_before":"2024-10-02T18:22:19","not_after":"2024-12-31T18:22:18","serial_number":"04f26242ac1b2ac659ac2e19ae2522ce3274","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"coturn.ms-it-services.de","name_value":"coturn.ms-it-services.de","id":14773501988,"entry_timestamp":"2024-10-02T19:20:49.356","not_before":"2024-10-02T18:22:19","not_after":"2024-12-31T18:22:18","serial_number":"04f26242ac1b2ac659ac2e19ae2522ce3274","result_count":2}]}
 | 
			
		||||
							
								
								
									
										2
									
								
								cache/crtsh/fleischkombinat-ost_de.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/fleischkombinat-ost_de.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
			
		||||
{"domain":"fleischkombinat-ost.de","first_cached":"2025-09-14T21:11:00.028593+00:00","last_upstream_query":"2025-09-14T21:11:00.028596+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"app.fleischkombinat-ost.de","name_value":"app.fleischkombinat-ost.de","id":19374493240,"entry_timestamp":"2025-07-01T14:09:36.354","not_before":"2025-07-01T13:11:00","not_after":"2025-09-29T13:10:59","serial_number":"0693231ff5e3212cabc2588e38b5d8337528","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"app.fleischkombinat-ost.de","name_value":"app.fleischkombinat-ost.de","id":19374489847,"entry_timestamp":"2025-07-01T14:09:30.117","not_before":"2025-07-01T13:11:00","not_after":"2025-09-29T13:10:59","serial_number":"0693231ff5e3212cabc2588e38b5d8337528","result_count":2},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"fleischkombinat-ost.de","name_value":"fleischkombinat-ost.de","id":19374378473,"entry_timestamp":"2025-07-01T14:01:50.593","not_before":"2025-07-01T13:03:20","not_after":"2025-09-29T13:03:19","serial_number":"06315dfed8c93d1497c26b21c448857b6f2c","result_count":2},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"fleischkombinat-ost.de","name_value":"fleischkombinat-ost.de","id":19374376791,"entry_timestamp":"2025-07-01T14:01:50.385","not_before":"2025-07-01T13:03:20","not_after":"2025-09-29T13:03:19","serial_number":"06315dfed8c93d1497c26b21c448857b6f2c","result_count":2},{"issuer_ca_id":158800,"issuer_name":"C=AT, O=ZeroSSL, CN=ZeroSSL RSA Domain Secure Site CA","common_name":"*.fleischkombinat-ost.de","name_value":"*.fleischkombinat-ost.de\nfleischkombinat-ost.de","id":19369530786,"entry_timestamp":"2025-07-01T09:12:02.496","not_before":"2025-07-01T00:00:00","not_after":"2025-09-29T23:59:59","serial_number":"07c51a2c164b3a6c5769b0e03a9f4085","result_count":3},{"issuer_ca_id":158800,"issuer_name":"C=AT, O=ZeroSSL, CN=ZeroSSL RSA Domain Secure Site CA","common_name":"*.fleischkombinat-ost.de","name_value":"*.fleischkombinat-ost.de\nfleischkombinat-ost.de","id":19369530780,"entry_timestamp":"2025-07-01T09:12:01.04","not_before":"2025-07-01T00:00:00","not_after":"2025-09-29T23:59:59","serial_number":"07c51a2c164b3a6c5769b0e03a9f4085","result_count":3}]}
 | 
			
		||||
{"domain":"fleischkombinat-ost.de","first_cached":"2025-09-14T21:11:00.028593+00:00","last_upstream_query":"2025-09-15T09:15:04.796648+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"app.fleischkombinat-ost.de","name_value":"app.fleischkombinat-ost.de","id":19374493240,"entry_timestamp":"2025-07-01T14:09:36.354","not_before":"2025-07-01T13:11:00","not_after":"2025-09-29T13:10:59","serial_number":"0693231ff5e3212cabc2588e38b5d8337528","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"app.fleischkombinat-ost.de","name_value":"app.fleischkombinat-ost.de","id":19374489847,"entry_timestamp":"2025-07-01T14:09:30.117","not_before":"2025-07-01T13:11:00","not_after":"2025-09-29T13:10:59","serial_number":"0693231ff5e3212cabc2588e38b5d8337528","result_count":2},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"fleischkombinat-ost.de","name_value":"fleischkombinat-ost.de","id":19374378473,"entry_timestamp":"2025-07-01T14:01:50.593","not_before":"2025-07-01T13:03:20","not_after":"2025-09-29T13:03:19","serial_number":"06315dfed8c93d1497c26b21c448857b6f2c","result_count":2},{"issuer_ca_id":295810,"issuer_name":"C=US, O=Let's Encrypt, CN=E5","common_name":"fleischkombinat-ost.de","name_value":"fleischkombinat-ost.de","id":19374376791,"entry_timestamp":"2025-07-01T14:01:50.385","not_before":"2025-07-01T13:03:20","not_after":"2025-09-29T13:03:19","serial_number":"06315dfed8c93d1497c26b21c448857b6f2c","result_count":2},{"issuer_ca_id":158800,"issuer_name":"C=AT, O=ZeroSSL, CN=ZeroSSL RSA Domain Secure Site CA","common_name":"*.fleischkombinat-ost.de","name_value":"*.fleischkombinat-ost.de\nfleischkombinat-ost.de","id":19369530786,"entry_timestamp":"2025-07-01T09:12:02.496","not_before":"2025-07-01T00:00:00","not_after":"2025-09-29T23:59:59","serial_number":"07c51a2c164b3a6c5769b0e03a9f4085","result_count":3},{"issuer_ca_id":158800,"issuer_name":"C=AT, O=ZeroSSL, CN=ZeroSSL RSA Domain Secure Site CA","common_name":"*.fleischkombinat-ost.de","name_value":"*.fleischkombinat-ost.de\nfleischkombinat-ost.de","id":19369530780,"entry_timestamp":"2025-07-01T09:12:01.04","not_before":"2025-07-01T00:00:00","not_after":"2025-09-29T23:59:59","serial_number":"07c51a2c164b3a6c5769b0e03a9f4085","result_count":3}]}
 | 
			
		||||
							
								
								
									
										2
									
								
								cache/crtsh/mx00_ionos_de.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/mx00_ionos_de.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
			
		||||
{"domain":"mx00.ionos.de","first_cached":"2025-09-14T21:05:21.043082+00:00","last_upstream_query":"2025-09-14T21:05:21.043085+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":17921174855,"entry_timestamp":"2025-04-18T11:32:56.685","not_before":"2024-05-14T10:13:42","not_after":"2025-05-18T23:59:59","serial_number":"01f21195d95cb3f63712c59f40b2f75c","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":17755974719,"entry_timestamp":"2025-04-10T06:20:35.546","not_before":"2025-04-10T06:20:33","not_after":"2026-04-14T23:59:59","serial_number":"27efd5b7b17610e4ae86d40dea979ad7","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":13038507917,"entry_timestamp":"2024-05-14T10:13:43.64","not_before":"2024-05-14T10:13:42","not_after":"2025-05-18T23:59:59","serial_number":"01f21195d95cb3f63712c59f40b2f75c","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":9700366741,"entry_timestamp":"2023-06-20T11:08:14.981","not_before":"2023-06-20T11:08:11","not_after":"2024-06-24T23:59:59","serial_number":"153f3cd769500d3eebec07c90476d817","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":7107715703,"entry_timestamp":"2022-07-12T10:00:03.026","not_before":"2022-07-12T10:00:01","not_after":"2023-07-16T23:59:59","serial_number":"210a3739eb290b28d1199f6a9c04d294","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":4981516894,"entry_timestamp":"2021-08-04T08:35:13.1","not_before":"2021-08-04T08:35:11","not_after":"2022-08-08T23:59:59","serial_number":"11ae5449f5d5cc2a5ec198105748f927","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":2864694015,"entry_timestamp":"2020-05-28T07:54:38.37","not_before":"2020-05-28T07:54:37","not_after":"2022-06-02T23:59:59","serial_number":"325b678601aae53e99926c1834988786","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":2857249553,"entry_timestamp":"2020-05-26T09:01:33.944","not_before":"2020-05-26T09:01:33","not_after":"2022-05-31T23:59:59","serial_number":"0ceee698ba17a744881fbb3998c05748","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":2857204010,"entry_timestamp":"2020-05-26T08:46:52.8","not_before":"2020-05-26T08:46:52","not_after":"2022-05-31T23:59:59","serial_number":"0ac520de92fde640943c1d2c0eb2f6e8","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":2856876813,"entry_timestamp":"2020-05-26T06:58:49.881","not_before":"2020-05-26T06:58:49","not_after":"2022-05-31T23:59:59","serial_number":"2f9201af62a3408df1579b8a39c0f7b6","result_count":1}]}
 | 
			
		||||
{"domain":"mx00.ionos.de","first_cached":"2025-09-14T21:05:21.043082+00:00","last_upstream_query":"2025-09-15T08:33:41.858892+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":17921174855,"entry_timestamp":"2025-04-18T11:32:56.685","not_before":"2024-05-14T10:13:42","not_after":"2025-05-18T23:59:59","serial_number":"01f21195d95cb3f63712c59f40b2f75c","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":17755974719,"entry_timestamp":"2025-04-10T06:20:35.546","not_before":"2025-04-10T06:20:33","not_after":"2026-04-14T23:59:59","serial_number":"27efd5b7b17610e4ae86d40dea979ad7","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":13038507917,"entry_timestamp":"2024-05-14T10:13:43.64","not_before":"2024-05-14T10:13:42","not_after":"2025-05-18T23:59:59","serial_number":"01f21195d95cb3f63712c59f40b2f75c","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":9700366741,"entry_timestamp":"2023-06-20T11:08:14.981","not_before":"2023-06-20T11:08:11","not_after":"2024-06-24T23:59:59","serial_number":"153f3cd769500d3eebec07c90476d817","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":7107715703,"entry_timestamp":"2022-07-12T10:00:03.026","not_before":"2022-07-12T10:00:01","not_after":"2023-07-16T23:59:59","serial_number":"210a3739eb290b28d1199f6a9c04d294","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":4981516894,"entry_timestamp":"2021-08-04T08:35:13.1","not_before":"2021-08-04T08:35:11","not_after":"2022-08-08T23:59:59","serial_number":"11ae5449f5d5cc2a5ec198105748f927","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":2864694015,"entry_timestamp":"2020-05-28T07:54:38.37","not_before":"2020-05-28T07:54:37","not_after":"2022-06-02T23:59:59","serial_number":"325b678601aae53e99926c1834988786","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":2857249553,"entry_timestamp":"2020-05-26T09:01:33.944","not_before":"2020-05-26T09:01:33","not_after":"2022-05-31T23:59:59","serial_number":"0ceee698ba17a744881fbb3998c05748","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":2857204010,"entry_timestamp":"2020-05-26T08:46:52.8","not_before":"2020-05-26T08:46:52","not_after":"2022-05-31T23:59:59","serial_number":"0ac520de92fde640943c1d2c0eb2f6e8","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx00.ionos.de","id":2856876813,"entry_timestamp":"2020-05-26T06:58:49.881","not_before":"2020-05-26T06:58:49","not_after":"2022-05-31T23:59:59","serial_number":"2f9201af62a3408df1579b8a39c0f7b6","result_count":1}]}
 | 
			
		||||
							
								
								
									
										2
									
								
								cache/crtsh/mx01_ionos_de.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/mx01_ionos_de.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
			
		||||
{"domain":"mx01.ionos.de","first_cached":"2025-09-14T21:05:58.567956+00:00","last_upstream_query":"2025-09-14T21:05:58.567958+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":17921174855,"entry_timestamp":"2025-04-18T11:32:56.685","not_before":"2024-05-14T10:13:42","not_after":"2025-05-18T23:59:59","serial_number":"01f21195d95cb3f63712c59f40b2f75c","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":17755974719,"entry_timestamp":"2025-04-10T06:20:35.546","not_before":"2025-04-10T06:20:33","not_after":"2026-04-14T23:59:59","serial_number":"27efd5b7b17610e4ae86d40dea979ad7","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":13038507917,"entry_timestamp":"2024-05-14T10:13:43.64","not_before":"2024-05-14T10:13:42","not_after":"2025-05-18T23:59:59","serial_number":"01f21195d95cb3f63712c59f40b2f75c","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":9700366741,"entry_timestamp":"2023-06-20T11:08:14.981","not_before":"2023-06-20T11:08:11","not_after":"2024-06-24T23:59:59","serial_number":"153f3cd769500d3eebec07c90476d817","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":7107715703,"entry_timestamp":"2022-07-12T10:00:03.026","not_before":"2022-07-12T10:00:01","not_after":"2023-07-16T23:59:59","serial_number":"210a3739eb290b28d1199f6a9c04d294","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":4981516894,"entry_timestamp":"2021-08-04T08:35:13.1","not_before":"2021-08-04T08:35:11","not_after":"2022-08-08T23:59:59","serial_number":"11ae5449f5d5cc2a5ec198105748f927","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":2864694015,"entry_timestamp":"2020-05-28T07:54:38.37","not_before":"2020-05-28T07:54:37","not_after":"2022-06-02T23:59:59","serial_number":"325b678601aae53e99926c1834988786","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":2857249553,"entry_timestamp":"2020-05-26T09:01:33.944","not_before":"2020-05-26T09:01:33","not_after":"2022-05-31T23:59:59","serial_number":"0ceee698ba17a744881fbb3998c05748","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":2857204010,"entry_timestamp":"2020-05-26T08:46:52.8","not_before":"2020-05-26T08:46:52","not_after":"2022-05-31T23:59:59","serial_number":"0ac520de92fde640943c1d2c0eb2f6e8","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":2856876813,"entry_timestamp":"2020-05-26T06:58:49.881","not_before":"2020-05-26T06:58:49","not_after":"2022-05-31T23:59:59","serial_number":"2f9201af62a3408df1579b8a39c0f7b6","result_count":1}]}
 | 
			
		||||
{"domain":"mx01.ionos.de","first_cached":"2025-09-14T21:05:58.567956+00:00","last_upstream_query":"2025-09-15T08:33:30.087773+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":17921174855,"entry_timestamp":"2025-04-18T11:32:56.685","not_before":"2024-05-14T10:13:42","not_after":"2025-05-18T23:59:59","serial_number":"01f21195d95cb3f63712c59f40b2f75c","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":17755974719,"entry_timestamp":"2025-04-10T06:20:35.546","not_before":"2025-04-10T06:20:33","not_after":"2026-04-14T23:59:59","serial_number":"27efd5b7b17610e4ae86d40dea979ad7","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":13038507917,"entry_timestamp":"2024-05-14T10:13:43.64","not_before":"2024-05-14T10:13:42","not_after":"2025-05-18T23:59:59","serial_number":"01f21195d95cb3f63712c59f40b2f75c","result_count":1},{"issuer_ca_id":245439,"issuer_name":"C=DE, O=Deutsche Telekom Security GmbH, CN=Telekom Security ServerID OV Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":9700366741,"entry_timestamp":"2023-06-20T11:08:14.981","not_before":"2023-06-20T11:08:11","not_after":"2024-06-24T23:59:59","serial_number":"153f3cd769500d3eebec07c90476d817","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":7107715703,"entry_timestamp":"2022-07-12T10:00:03.026","not_before":"2022-07-12T10:00:01","not_after":"2023-07-16T23:59:59","serial_number":"210a3739eb290b28d1199f6a9c04d294","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":4981516894,"entry_timestamp":"2021-08-04T08:35:13.1","not_before":"2021-08-04T08:35:11","not_after":"2022-08-08T23:59:59","serial_number":"11ae5449f5d5cc2a5ec198105748f927","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":2864694015,"entry_timestamp":"2020-05-28T07:54:38.37","not_before":"2020-05-28T07:54:37","not_after":"2022-06-02T23:59:59","serial_number":"325b678601aae53e99926c1834988786","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":2857249553,"entry_timestamp":"2020-05-26T09:01:33.944","not_before":"2020-05-26T09:01:33","not_after":"2022-05-31T23:59:59","serial_number":"0ceee698ba17a744881fbb3998c05748","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":2857204010,"entry_timestamp":"2020-05-26T08:46:52.8","not_before":"2020-05-26T08:46:52","not_after":"2022-05-31T23:59:59","serial_number":"0ac520de92fde640943c1d2c0eb2f6e8","result_count":1},{"issuer_ca_id":6069,"issuer_name":"C=DE, O=T-Systems International GmbH, OU=T-Systems Trust Center, ST=Nordrhein Westfalen, postalCode=57250, L=Netphen, street=Untere Industriestr. 20, CN=TeleSec ServerPass Class 2 CA","common_name":"mx.kundenserver.de","name_value":"mx01.ionos.de","id":2856876813,"entry_timestamp":"2020-05-26T06:58:49.881","not_before":"2020-05-26T06:58:49","not_after":"2022-05-31T23:59:59","serial_number":"2f9201af62a3408df1579b8a39c0f7b6","result_count":1}]}
 | 
			
		||||
							
								
								
									
										1
									
								
								cache/crtsh/ns3_m-online_net.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/ns3_m-online_net.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								cache/crtsh/ns4_m-online_net.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cache/crtsh/ns4_m-online_net.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								cache/crtsh/overcuriousity_org.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/overcuriousity_org.json
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								cache/crtsh/signaling_mikoshi_de.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/signaling_mikoshi_de.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
			
		||||
{"domain":"signaling.mikoshi.de","first_cached":"2025-09-14T21:05:14.189157+00:00","last_upstream_query":"2025-09-14T21:05:14.189159+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":19208276669,"entry_timestamp":"2025-06-23T18:21:11.885","not_before":"2025-06-23T17:22:40","not_after":"2025-09-21T17:22:39","serial_number":"0542fce9cb99bb1c1d18e5e452c90d850936","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":19208276557,"entry_timestamp":"2025-06-23T18:21:11.215","not_before":"2025-06-23T17:22:40","not_after":"2025-09-21T17:22:39","serial_number":"0542fce9cb99bb1c1d18e5e452c90d850936","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":19208272013,"entry_timestamp":"2025-06-23T18:20:29.619","not_before":"2025-06-23T17:21:56","not_after":"2025-09-21T17:21:55","serial_number":"0540be6c8cb99dcaa5492af7b934f40466f9","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":19208263539,"entry_timestamp":"2025-06-23T18:20:26.82","not_before":"2025-06-23T17:21:56","not_after":"2025-09-21T17:21:55","serial_number":"0540be6c8cb99dcaa5492af7b934f40466f9","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":17428224909,"entry_timestamp":"2025-03-23T15:21:03.771","not_before":"2025-03-23T14:22:33","not_after":"2025-06-21T14:22:32","serial_number":"0537513d69487cead5f018b5322aa54fb52e","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":17346408492,"entry_timestamp":"2025-03-23T15:21:03.617","not_before":"2025-03-23T14:22:33","not_after":"2025-06-21T14:22:32","serial_number":"0537513d69487cead5f018b5322aa54fb52e","result_count":2},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":17170806575,"entry_timestamp":"2025-02-13T00:01:39.507","not_before":"2025-02-12T23:03:07","not_after":"2025-05-13T23:03:06","serial_number":"04a3141d80551d2287647211445f32131b19","result_count":2},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":16704105641,"entry_timestamp":"2025-02-13T00:01:37.463","not_before":"2025-02-12T23:03:07","not_after":"2025-05-13T23:03:06","serial_number":"04a3141d80551d2287647211445f32131b19","result_count":2},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":17122350772,"entry_timestamp":"2025-02-09T15:19:01.645","not_before":"2025-02-09T14:20:31","not_after":"2025-05-10T14:20:30","serial_number":"0456c53707eac4c8e79109b09eb9257674ef","result_count":2},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":16635514012,"entry_timestamp":"2025-02-09T15:19:01.438","not_before":"2025-02-09T14:20:31","not_after":"2025-05-10T14:20:30","serial_number":"0456c53707eac4c8e79109b09eb9257674ef","result_count":2}]}
 | 
			
		||||
{"domain":"signaling.mikoshi.de","first_cached":"2025-09-14T21:05:14.189157+00:00","last_upstream_query":"2025-09-15T08:33:10.116677+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":19208276669,"entry_timestamp":"2025-06-23T18:21:11.885","not_before":"2025-06-23T17:22:40","not_after":"2025-09-21T17:22:39","serial_number":"0542fce9cb99bb1c1d18e5e452c90d850936","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":19208276557,"entry_timestamp":"2025-06-23T18:21:11.215","not_before":"2025-06-23T17:22:40","not_after":"2025-09-21T17:22:39","serial_number":"0542fce9cb99bb1c1d18e5e452c90d850936","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":19208272013,"entry_timestamp":"2025-06-23T18:20:29.619","not_before":"2025-06-23T17:21:56","not_after":"2025-09-21T17:21:55","serial_number":"0540be6c8cb99dcaa5492af7b934f40466f9","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":19208263539,"entry_timestamp":"2025-06-23T18:20:26.82","not_before":"2025-06-23T17:21:56","not_after":"2025-09-21T17:21:55","serial_number":"0540be6c8cb99dcaa5492af7b934f40466f9","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":17428224909,"entry_timestamp":"2025-03-23T15:21:03.771","not_before":"2025-03-23T14:22:33","not_after":"2025-06-21T14:22:32","serial_number":"0537513d69487cead5f018b5322aa54fb52e","result_count":2},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":17346408492,"entry_timestamp":"2025-03-23T15:21:03.617","not_before":"2025-03-23T14:22:33","not_after":"2025-06-21T14:22:32","serial_number":"0537513d69487cead5f018b5322aa54fb52e","result_count":2},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":17170806575,"entry_timestamp":"2025-02-13T00:01:39.507","not_before":"2025-02-12T23:03:07","not_after":"2025-05-13T23:03:06","serial_number":"04a3141d80551d2287647211445f32131b19","result_count":2},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":16704105641,"entry_timestamp":"2025-02-13T00:01:37.463","not_before":"2025-02-12T23:03:07","not_after":"2025-05-13T23:03:06","serial_number":"04a3141d80551d2287647211445f32131b19","result_count":2},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":17122350772,"entry_timestamp":"2025-02-09T15:19:01.645","not_before":"2025-02-09T14:20:31","not_after":"2025-05-10T14:20:30","serial_number":"0456c53707eac4c8e79109b09eb9257674ef","result_count":2},{"issuer_ca_id":295815,"issuer_name":"C=US, O=Let's Encrypt, CN=R11","common_name":"signaling.mikoshi.de","name_value":"signaling.mikoshi.de","id":16635514012,"entry_timestamp":"2025-02-09T15:19:01.438","not_before":"2025-02-09T14:20:31","not_after":"2025-05-10T14:20:30","serial_number":"0456c53707eac4c8e79109b09eb9257674ef","result_count":2}]}
 | 
			
		||||
							
								
								
									
										2
									
								
								cache/crtsh/www_overcuriousity_org.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								cache/crtsh/www_overcuriousity_org.json
									
									
									
									
										vendored
									
									
								
							@ -1 +1 @@
 | 
			
		||||
{"domain":"www.overcuriousity.org","first_cached":"2025-09-14T21:16:24.041839+00:00","last_upstream_query":"2025-09-14T21:16:24.041842+00:00","upstream_query_count":1,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"www.overcuriousity.org","id":19208272013,"entry_timestamp":"2025-06-23T18:20:29.619","not_before":"2025-06-23T17:21:56","not_after":"2025-09-21T17:21:55","serial_number":"0540be6c8cb99dcaa5492af7b934f40466f9","result_count":1},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"www.overcuriousity.org","id":19208263539,"entry_timestamp":"2025-06-23T18:20:26.82","not_before":"2025-06-23T17:21:56","not_after":"2025-09-21T17:21:55","serial_number":"0540be6c8cb99dcaa5492af7b934f40466f9","result_count":1}]}
 | 
			
		||||
{"domain":"www.overcuriousity.org","first_cached":"2025-09-14T21:16:24.041839+00:00","last_upstream_query":"2025-09-15T08:33:07.990411+00:00","upstream_query_count":2,"certificates":[{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"www.overcuriousity.org","id":19208272013,"entry_timestamp":"2025-06-23T18:20:29.619","not_before":"2025-06-23T17:21:56","not_after":"2025-09-21T17:21:55","serial_number":"0540be6c8cb99dcaa5492af7b934f40466f9","result_count":1},{"issuer_ca_id":295819,"issuer_name":"C=US, O=Let's Encrypt, CN=E6","common_name":"signaling.mikoshi.de","name_value":"www.overcuriousity.org","id":19208263539,"entry_timestamp":"2025-06-23T18:20:26.82","not_before":"2025-06-23T17:21:56","not_after":"2025-09-21T17:21:55","serial_number":"0540be6c8cb99dcaa5492af7b934f40466f9","result_count":1}]}
 | 
			
		||||
@ -19,7 +19,7 @@ class Config:
 | 
			
		||||
        
 | 
			
		||||
        # --- General Settings ---
 | 
			
		||||
        self.default_recursion_depth = 2
 | 
			
		||||
        self.default_timeout = 20
 | 
			
		||||
        self.default_timeout = 30
 | 
			
		||||
        self.max_concurrent_requests = 5
 | 
			
		||||
        self.large_entity_threshold = 100
 | 
			
		||||
        self.max_retries_per_target = 8
 | 
			
		||||
 | 
			
		||||
@ -541,7 +541,8 @@ class CrtShProvider(BaseProvider):
 | 
			
		||||
                'expires_soon_count': 0,
 | 
			
		||||
                'unique_issuers': [],
 | 
			
		||||
                'latest_certificate': None,
 | 
			
		||||
                'has_valid_cert': False
 | 
			
		||||
                'has_valid_cert': False,
 | 
			
		||||
                'certificate_details': []  # Always include empty list
 | 
			
		||||
            }
 | 
			
		||||
        
 | 
			
		||||
        valid_count = sum(1 for cert in certificates if cert.get('is_currently_valid'))
 | 
			
		||||
@ -565,6 +566,13 @@ class CrtShProvider(BaseProvider):
 | 
			
		||||
            except Exception:
 | 
			
		||||
                continue
 | 
			
		||||
        
 | 
			
		||||
        # Sort certificates by date for better display (newest first)
 | 
			
		||||
        sorted_certificates = sorted(
 | 
			
		||||
            certificates, 
 | 
			
		||||
            key=lambda c: self._get_certificate_sort_date(c), 
 | 
			
		||||
            reverse=True
 | 
			
		||||
        )
 | 
			
		||||
        
 | 
			
		||||
        return {
 | 
			
		||||
            'total_certificates': len(certificates),
 | 
			
		||||
            'valid_certificates': valid_count,
 | 
			
		||||
@ -573,9 +581,35 @@ class CrtShProvider(BaseProvider):
 | 
			
		||||
            'unique_issuers': unique_issuers,
 | 
			
		||||
            'latest_certificate': latest_cert,
 | 
			
		||||
            'has_valid_cert': valid_count > 0,
 | 
			
		||||
            'certificate_details': certificates  # Full details for forensic analysis
 | 
			
		||||
            'certificate_details': sorted_certificates  # Include full certificate details
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    def _get_certificate_sort_date(self, cert: Dict[str, Any]) -> datetime:
 | 
			
		||||
        """
 | 
			
		||||
        Get a sortable date from certificate data for chronological ordering.
 | 
			
		||||
        
 | 
			
		||||
        Args:
 | 
			
		||||
            cert: Certificate metadata dictionary
 | 
			
		||||
            
 | 
			
		||||
        Returns:
 | 
			
		||||
            Datetime object for sorting (falls back to epoch if parsing fails)
 | 
			
		||||
        """
 | 
			
		||||
        try:
 | 
			
		||||
            # Try not_before first (issue date)
 | 
			
		||||
            if cert.get('not_before'):
 | 
			
		||||
                return self._parse_certificate_date(cert['not_before'])
 | 
			
		||||
            
 | 
			
		||||
            # Fall back to entry_timestamp if available
 | 
			
		||||
            if cert.get('entry_timestamp'):
 | 
			
		||||
                return self._parse_certificate_date(cert['entry_timestamp'])
 | 
			
		||||
                
 | 
			
		||||
            # Last resort - return a very old date for certificates without dates
 | 
			
		||||
            return datetime(1970, 1, 1, tzinfo=timezone.utc)
 | 
			
		||||
            
 | 
			
		||||
        except Exception:
 | 
			
		||||
            # If all parsing fails, return epoch
 | 
			
		||||
            return datetime(1970, 1, 1, tzinfo=timezone.utc)
 | 
			
		||||
 | 
			
		||||
    def _calculate_domain_relationship_confidence(self, domain1: str, domain2: str, 
 | 
			
		||||
                                                shared_certificates: List[Dict[str, Any]],
 | 
			
		||||
                                                all_discovered_domains: Set[str]) -> float:
 | 
			
		||||
 | 
			
		||||
@ -1440,6 +1440,50 @@ input[type="text"]:focus, select:focus {
 | 
			
		||||
.certificate-status.invalid { background: #ff6b6b; color: #fff; }
 | 
			
		||||
.certificate-status.expired { background: #ff9900; color: #000; }
 | 
			
		||||
 | 
			
		||||
.cert-summary-grid {
 | 
			
		||||
    display: grid;
 | 
			
		||||
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
 | 
			
		||||
    gap: 0.5rem;
 | 
			
		||||
    margin-bottom: 1rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.cert-stat-item {
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    padding: 0.5rem;
 | 
			
		||||
    background: rgba(255, 255, 255, 0.02);
 | 
			
		||||
    border: 1px solid #333;
 | 
			
		||||
    border-radius: 4px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.cert-stat-value {
 | 
			
		||||
    font-size: 1.2rem;
 | 
			
		||||
    font-weight: 600;
 | 
			
		||||
    color: #00ff41;
 | 
			
		||||
    font-family: 'Roboto Mono', monospace;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.cert-stat-label {
 | 
			
		||||
    font-size: 0.8rem;
 | 
			
		||||
    color: #999;
 | 
			
		||||
    margin-top: 0.25rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Status badges - extends existing badge system */
 | 
			
		||||
.cert-status.valid { background: #00ff41; color: #000; }
 | 
			
		||||
.cert-status.invalid { background: #ff6b6b; color: #fff; }
 | 
			
		||||
.cert-status.warning { background: #ff9900; color: #000; }
 | 
			
		||||
 | 
			
		||||
/* Certificate links */
 | 
			
		||||
.cert-link {
 | 
			
		||||
    color: #00aaff;
 | 
			
		||||
    text-decoration: none;
 | 
			
		||||
    font-size: 0.85rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.cert-link:hover {
 | 
			
		||||
    color: #00ff41;
 | 
			
		||||
    text-decoration: underline;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* === CORRELATION OBJECT LAYOUT === */
 | 
			
		||||
.correlation-grid {
 | 
			
		||||
@ -1529,6 +1573,23 @@ input[type="text"]:focus, select:focus {
 | 
			
		||||
    display: block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.correlation-attr-name {
 | 
			
		||||
    color: #00ff41;
 | 
			
		||||
    font-weight: 600;
 | 
			
		||||
    text-transform: capitalize;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.correlation-hint {
 | 
			
		||||
    color: #999;
 | 
			
		||||
    cursor: help;
 | 
			
		||||
    opacity: 0.7;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.correlation-hint:hover {
 | 
			
		||||
    opacity: 1;
 | 
			
		||||
    color: #00ff41;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.node-list {
 | 
			
		||||
    padding: 1rem 1.5rem;
 | 
			
		||||
    display: flex;
 | 
			
		||||
@ -1935,46 +1996,6 @@ input[type="text"]:focus, select:focus {
 | 
			
		||||
    margin-left: 5px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Loading and Error States */
 | 
			
		||||
.loading {
 | 
			
		||||
    opacity: 0.6;
 | 
			
		||||
    pointer-events: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.loading-overlay {
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    right: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    background: rgba(26, 26, 26, 0.8);
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    z-index: 100;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.loading-spinner {
 | 
			
		||||
    width: 40px;
 | 
			
		||||
    height: 40px;
 | 
			
		||||
    border: 3px solid #444;
 | 
			
		||||
    border-top: 3px solid #00ff41;
 | 
			
		||||
    border-radius: 50%;
 | 
			
		||||
    animation: spin 1s linear infinite;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@keyframes spin {
 | 
			
		||||
    0% { transform: rotate(0deg); }
 | 
			
		||||
    100% { transform: rotate(360deg); }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.loading-text {
 | 
			
		||||
    margin-top: 1rem;
 | 
			
		||||
    color: #999;
 | 
			
		||||
    font-family: 'Roboto Mono', monospace;
 | 
			
		||||
    font-size: 0.9rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.error {
 | 
			
		||||
    color: #ff6b6b !important;
 | 
			
		||||
    border-color: #ff6b6b !important;
 | 
			
		||||
@ -2004,48 +2025,6 @@ input[type="text"]:focus, select:focus {
 | 
			
		||||
    display: none !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text-center {
 | 
			
		||||
    text-align: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text-success {
 | 
			
		||||
    color: #00ff41;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text-warning {
 | 
			
		||||
    color: #ff9900;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text-error {
 | 
			
		||||
    color: #ff6b6b;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.glow {
 | 
			
		||||
    text-shadow: 0 0 5px rgba(0, 255, 65, 0.5);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.glow-text {
 | 
			
		||||
    text-shadow: 0 0 10px currentColor;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.amber {
 | 
			
		||||
    color: #ff9900;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.glass-effect {
 | 
			
		||||
    background: rgba(42, 42, 42, 0.7);
 | 
			
		||||
    backdrop-filter: blur(10px);
 | 
			
		||||
    border: 1px solid rgba(255, 255, 255, 0.1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hover-lift {
 | 
			
		||||
    transition: transform 0.3s ease;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hover-lift:hover {
 | 
			
		||||
    transform: translateY(-2px);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Graph specific styles */
 | 
			
		||||
.vis-network {
 | 
			
		||||
    background-color: #1a1a1a !important;
 | 
			
		||||
 | 
			
		||||
@ -32,6 +32,7 @@ class DNSReconApp {
 | 
			
		||||
                this.initializeGraph();
 | 
			
		||||
                this.updateStatus();
 | 
			
		||||
                this.loadProviders();
 | 
			
		||||
                this.initializeEnhancedModals();
 | 
			
		||||
                
 | 
			
		||||
                console.log('DNSRecon application initialized successfully');
 | 
			
		||||
            } catch (error) {
 | 
			
		||||
@ -840,97 +841,241 @@ class DNSReconApp {
 | 
			
		||||
        let html = '';
 | 
			
		||||
        
 | 
			
		||||
        // Relationships sections
 | 
			
		||||
        if (node.incoming_edges && node.incoming_edges.length > 0) {
 | 
			
		||||
            html += `
 | 
			
		||||
                <div class="modal-section">
 | 
			
		||||
                    <details>
 | 
			
		||||
                        <summary>⬅️ Incoming Relationships (${node.incoming_edges.length})</summary>
 | 
			
		||||
                        <div class="modal-section-content">
 | 
			
		||||
                            <div class="relationship-compact">
 | 
			
		||||
            `;
 | 
			
		||||
        html += this.generateRelationshipsSection(node);
 | 
			
		||||
        
 | 
			
		||||
            node.incoming_edges.forEach(edge => {
 | 
			
		||||
                const confidence = edge.data.confidence_score || 0;
 | 
			
		||||
                const confidenceClass = confidence >= 0.8 ? 'high' : confidence >= 0.6 ? 'medium' : 'low';
 | 
			
		||||
                
 | 
			
		||||
                html += `
 | 
			
		||||
                    <div class="relationship-compact-item">
 | 
			
		||||
                        <span class="node-link-compact" data-node-id="${edge.from}">${edge.from}</span>
 | 
			
		||||
                        <div>
 | 
			
		||||
                            <span class="relation-label">${edge.data.relationship_type}</span>
 | 
			
		||||
                            <span class="confidence-compact ${confidenceClass}">${Math.round(confidence * 100)}%</span>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                `;
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            html += '</div></div></details></div>';
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        if (node.outgoing_edges && node.outgoing_edges.length > 0) {
 | 
			
		||||
            html += `
 | 
			
		||||
                <div class="modal-section">
 | 
			
		||||
                    <details>
 | 
			
		||||
                        <summary>➡️ Outgoing Relationships (${node.outgoing_edges.length})</summary>
 | 
			
		||||
                        <div class="modal-section-content">
 | 
			
		||||
                            <div class="relationship-compact">
 | 
			
		||||
            `;
 | 
			
		||||
            
 | 
			
		||||
            node.outgoing_edges.forEach(edge => {
 | 
			
		||||
                const confidence = edge.data.confidence_score || 0;
 | 
			
		||||
                const confidenceClass = confidence >= 0.8 ? 'high' : confidence >= 0.6 ? 'medium' : 'low';
 | 
			
		||||
                
 | 
			
		||||
                html += `
 | 
			
		||||
                    <div class="relationship-compact-item">
 | 
			
		||||
                        <span class="node-link-compact" data-node-id="${edge.to}">${edge.to}</span>
 | 
			
		||||
                        <div>
 | 
			
		||||
                            <span class="relation-label">${edge.data.relationship_type}</span>
 | 
			
		||||
                            <span class="confidence-compact ${confidenceClass}">${Math.round(confidence * 100)}%</span>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                `;
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            html += '</div></div></details></div>';
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        // Attributes section
 | 
			
		||||
        // Enhanced attributes section with special certificate handling
 | 
			
		||||
        if (node.attributes && Object.keys(node.attributes).length > 0) {
 | 
			
		||||
            html += this.generateAttributesSection(node.attributes);
 | 
			
		||||
            const { certificates, ...otherAttributes } = node.attributes;
 | 
			
		||||
            
 | 
			
		||||
            // Handle certificates separately with enhanced display
 | 
			
		||||
            if (certificates) {
 | 
			
		||||
                html += this.generateCertificateSection({ certificates });
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            // Handle other attributes normally
 | 
			
		||||
            if (Object.keys(otherAttributes).length > 0) {
 | 
			
		||||
                html += this.generateAttributesSection(otherAttributes);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        // Description section
 | 
			
		||||
        if (node.description) {
 | 
			
		||||
            html += `
 | 
			
		||||
        html += this.generateDescriptionSection(node);
 | 
			
		||||
        
 | 
			
		||||
        // Metadata section (collapsed by default)
 | 
			
		||||
        html += this.generateMetadataSection(node);
 | 
			
		||||
        
 | 
			
		||||
        return html;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Enhanced certificate section generation using existing styles
 | 
			
		||||
     */
 | 
			
		||||
    generateCertificateSection(attributes) {
 | 
			
		||||
        const certificates = attributes.certificates;
 | 
			
		||||
        if (!certificates || typeof certificates !== 'object') {
 | 
			
		||||
            return '';
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        let html = `
 | 
			
		||||
            <div class="modal-section">
 | 
			
		||||
                <details>
 | 
			
		||||
                        <summary>📝 Description</summary>
 | 
			
		||||
                    <summary>🔒 SSL/TLS Certificates</summary>
 | 
			
		||||
                    <div class="modal-section-content">
 | 
			
		||||
                            <p>${this.escapeHtml(node.description)}</p>
 | 
			
		||||
        `;
 | 
			
		||||
        
 | 
			
		||||
        // Certificate summary using existing grid pattern
 | 
			
		||||
        html += this.generateCertificateSummary(certificates);
 | 
			
		||||
        
 | 
			
		||||
        // Latest certificate info using existing attribute display
 | 
			
		||||
        if (certificates.latest_certificate) {
 | 
			
		||||
            html += this.generateLatestCertificateInfo(certificates.latest_certificate);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        // Detailed certificate list if available
 | 
			
		||||
        if (certificates.certificate_details && Array.isArray(certificates.certificate_details)) {
 | 
			
		||||
            html += this.generateCertificateList(certificates.certificate_details);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        html += '</div></details></div>';
 | 
			
		||||
        return html;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Generate latest certificate info using existing attribute list
 | 
			
		||||
     */
 | 
			
		||||
    generateLatestCertificateInfo(latest) {
 | 
			
		||||
        const isValid = latest.is_currently_valid;
 | 
			
		||||
        const statusText = isValid ? 'Valid' : 'Invalid/Expired';
 | 
			
		||||
        const statusColor = isValid ? '#00ff41' : '#ff6b6b';
 | 
			
		||||
        
 | 
			
		||||
        let html = `
 | 
			
		||||
            <div style="margin-bottom: 1rem; padding: 0.75rem; background: rgba(255, 255, 255, 0.02); border-radius: 4px; border: 1px solid #333;">
 | 
			
		||||
                <h5 style="margin: 0 0 0.5rem 0; color: #00ff41; font-size: 0.9rem;">Most Recent Certificate</h5>
 | 
			
		||||
                <div class="attribute-list">
 | 
			
		||||
                    <div class="attribute-item-compact">
 | 
			
		||||
                        <span class="attribute-key-compact">Status:</span>
 | 
			
		||||
                        <span class="attribute-value-compact" style="color: ${statusColor}; font-weight: 600;">${statusText}</span>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    </details>
 | 
			
		||||
                    <div class="attribute-item-compact">
 | 
			
		||||
                        <span class="attribute-key-compact">Issued:</span>
 | 
			
		||||
                        <span class="attribute-value-compact">${latest.not_before || 'Unknown'}</span>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="attribute-item-compact">
 | 
			
		||||
                        <span class="attribute-key-compact">Expires:</span>
 | 
			
		||||
                        <span class="attribute-value-compact">${latest.not_after || 'Unknown'}</span>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="attribute-item-compact">
 | 
			
		||||
                        <span class="attribute-key-compact">Issuer:</span>
 | 
			
		||||
                        <span class="attribute-value-compact">${this.escapeHtml(latest.issuer_name || 'Unknown')}</span>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    ${latest.certificate_id ? `
 | 
			
		||||
                    <div class="attribute-item-compact">
 | 
			
		||||
                        <span class="attribute-key-compact">Certificate:</span>
 | 
			
		||||
                        <span class="attribute-value-compact">
 | 
			
		||||
                            <a href="https://crt.sh/?id=${latest.certificate_id}" target="_blank" class="cert-link">
 | 
			
		||||
                                View on crt.sh ↗
 | 
			
		||||
                            </a>
 | 
			
		||||
                        </span>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    ` : ''}
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
        `;
 | 
			
		||||
        
 | 
			
		||||
        return html;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Generate certificate list using existing collapsible structure
 | 
			
		||||
     */
 | 
			
		||||
    generateCertificateList(certificateDetails) {
 | 
			
		||||
        if (!certificateDetails || certificateDetails.length === 0) {
 | 
			
		||||
            return '';
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        // Limit display to prevent overwhelming the UI
 | 
			
		||||
        const maxDisplay = 8;
 | 
			
		||||
        const certificates = certificateDetails.slice(0, maxDisplay);
 | 
			
		||||
        const remaining = certificateDetails.length - maxDisplay;
 | 
			
		||||
        
 | 
			
		||||
        let html = `
 | 
			
		||||
            <details style="margin-top: 1rem;">
 | 
			
		||||
                <summary>📋 Certificate Details (${certificates.length}${remaining > 0 ? ` of ${certificateDetails.length}` : ''})</summary>
 | 
			
		||||
                <div style="margin-top: 0.75rem;">
 | 
			
		||||
        `;
 | 
			
		||||
        
 | 
			
		||||
        certificates.forEach((cert, index) => {
 | 
			
		||||
            const isValid = cert.is_currently_valid;
 | 
			
		||||
            let statusText = isValid ? '✅ Valid' : '❌ Invalid/Expired';
 | 
			
		||||
            let statusColor = isValid ? '#00ff41' : '#ff6b6b';
 | 
			
		||||
            
 | 
			
		||||
            if (cert.expires_soon && isValid) {
 | 
			
		||||
                statusText = '⚠️ Valid (Expiring Soon)';
 | 
			
		||||
                statusColor = '#ff9900';
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            html += `
 | 
			
		||||
                <div style="margin-bottom: 0.75rem; padding: 0.75rem; background: rgba(255, 255, 255, 0.02); border: 1px solid #333; border-radius: 4px;">
 | 
			
		||||
                    <div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; border-bottom: 1px solid #333; padding-bottom: 0.5rem;">
 | 
			
		||||
                        <span style="font-weight: 600; color: #999;">#${index + 1}</span>
 | 
			
		||||
                        <span style="color: ${statusColor}; font-size: 0.85rem; font-weight: 500;">${statusText}</span>
 | 
			
		||||
                        ${cert.certificate_id ? `
 | 
			
		||||
                        <a href="https://crt.sh/?id=${cert.certificate_id}" target="_blank" class="cert-link">crt.sh ↗</a>
 | 
			
		||||
                        ` : ''}
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="attribute-list">
 | 
			
		||||
                        <div class="attribute-item-compact">
 | 
			
		||||
                            <span class="attribute-key-compact">Common Name:</span>
 | 
			
		||||
                            <span class="attribute-value-compact">${this.escapeHtml(cert.common_name || 'N/A')}</span>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <div class="attribute-item-compact">
 | 
			
		||||
                            <span class="attribute-key-compact">Issuer:</span>
 | 
			
		||||
                            <span class="attribute-value-compact">${this.escapeHtml(cert.issuer_name || 'Unknown')}</span>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <div class="attribute-item-compact">
 | 
			
		||||
                            <span class="attribute-key-compact">Valid From:</span>
 | 
			
		||||
                            <span class="attribute-value-compact">${cert.not_before || 'Unknown'}</span>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <div class="attribute-item-compact">
 | 
			
		||||
                            <span class="attribute-key-compact">Valid Until:</span>
 | 
			
		||||
                            <span class="attribute-value-compact">${cert.not_after || 'Unknown'}</span>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        ${cert.validity_period_days ? `
 | 
			
		||||
                        <div class="attribute-item-compact">
 | 
			
		||||
                            <span class="attribute-key-compact">Period:</span>
 | 
			
		||||
                            <span class="attribute-value-compact">${cert.validity_period_days} days</span>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        ` : ''}
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
            `;
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        if (remaining > 0) {
 | 
			
		||||
            html += `
 | 
			
		||||
                <div style="text-align: center; padding: 1rem; color: #ff9900; background: rgba(255, 153, 0, 0.1); border: 1px solid #ff9900; border-radius: 4px;">
 | 
			
		||||
                    📋 ${remaining} additional certificate${remaining > 1 ? 's' : ''} not shown.<br>
 | 
			
		||||
                    <small style="color: #999;">Use the export function to see all certificates.</small>
 | 
			
		||||
                </div>
 | 
			
		||||
            `;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        // Metadata section
 | 
			
		||||
        if (node.metadata && Object.keys(node.metadata).length > 0) {
 | 
			
		||||
            html += `
 | 
			
		||||
                <div class="modal-section">
 | 
			
		||||
                    <details>
 | 
			
		||||
                        <summary>🔧 Technical Metadata</summary>
 | 
			
		||||
                        <div class="modal-section-content">
 | 
			
		||||
                            ${this.formatObjectToHtml(node.metadata)}
 | 
			
		||||
        html += '</div></details>';
 | 
			
		||||
        return html;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Generate certificate summary using minimal new CSS
 | 
			
		||||
     */
 | 
			
		||||
    generateCertificateSummary(certificates) {
 | 
			
		||||
        const total = certificates.total_certificates || 0;
 | 
			
		||||
        const valid = certificates.valid_certificates || 0;
 | 
			
		||||
        const expired = certificates.expired_certificates || 0;
 | 
			
		||||
        const expiringSoon = certificates.expires_soon_count || 0;
 | 
			
		||||
        const issuers = certificates.unique_issuers || [];
 | 
			
		||||
        
 | 
			
		||||
        let html = `
 | 
			
		||||
            <div class="cert-summary-grid">
 | 
			
		||||
                <div class="cert-stat-item">
 | 
			
		||||
                    <div class="cert-stat-value">${total}</div>
 | 
			
		||||
                    <div class="cert-stat-label">Total</div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="cert-stat-item">
 | 
			
		||||
                    <div class="cert-stat-value" style="color: #00ff41">${valid}</div>
 | 
			
		||||
                    <div class="cert-stat-label">Valid</div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="cert-stat-item">
 | 
			
		||||
                    <div class="cert-stat-value" style="color: #ff6b6b">${expired}</div>
 | 
			
		||||
                    <div class="cert-stat-label">Expired</div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="cert-stat-item">
 | 
			
		||||
                    <div class="cert-stat-value" style="color: #ff9900">${expiringSoon}</div>
 | 
			
		||||
                    <div class="cert-stat-label">Expiring Soon</div>
 | 
			
		||||
                </div>
 | 
			
		||||
                    </details>
 | 
			
		||||
            </div>
 | 
			
		||||
        `;
 | 
			
		||||
        
 | 
			
		||||
        // Certificate authorities using existing array display
 | 
			
		||||
        if (issuers.length > 0) {
 | 
			
		||||
            html += `
 | 
			
		||||
                <div class="attribute-item-compact" style="margin-bottom: 1rem;">
 | 
			
		||||
                    <span class="attribute-key-compact">Certificate Authorities:</span>
 | 
			
		||||
                    <span class="attribute-value-compact">
 | 
			
		||||
                        <div class="array-display">
 | 
			
		||||
            `;
 | 
			
		||||
            
 | 
			
		||||
            issuers.forEach(issuer => {
 | 
			
		||||
                html += `<div class="array-display-item">${this.escapeHtml(issuer)}</div>`;
 | 
			
		||||
            });
 | 
			
		||||
            
 | 
			
		||||
            html += '</div></span></div>';
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        return html;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    generateLargeEntityDetails(node) {
 | 
			
		||||
        const attributes = node.attributes || {};
 | 
			
		||||
        const nodes = attributes.nodes || [];
 | 
			
		||||
@ -982,11 +1127,12 @@ class DNSReconApp {
 | 
			
		||||
    generateCorrelationDetails(node) {
 | 
			
		||||
        const metadata = node.metadata || {};
 | 
			
		||||
        const values = metadata.values || [];
 | 
			
		||||
        const sources = metadata.sources || [];
 | 
			
		||||
        const mergeCount = metadata.merge_count || 1;
 | 
			
		||||
        
 | 
			
		||||
        let html = '';
 | 
			
		||||
        
 | 
			
		||||
        // Correlation values section
 | 
			
		||||
        // Correlation values section with meaningful labels - reuses existing modal structure
 | 
			
		||||
        html += `
 | 
			
		||||
            <div class="modal-section">
 | 
			
		||||
                <details open>
 | 
			
		||||
@ -995,21 +1141,33 @@ class DNSReconApp {
 | 
			
		||||
                        <span class="merge-badge">${mergeCount} value${mergeCount > 1 ? 's' : ''}</span>
 | 
			
		||||
                    </summary>
 | 
			
		||||
                    <div class="modal-section-content">
 | 
			
		||||
                        <div class="array-display">
 | 
			
		||||
                        <div class="attribute-list">
 | 
			
		||||
        `;
 | 
			
		||||
        
 | 
			
		||||
        // Create a map of values to their source attributes for better labeling
 | 
			
		||||
        const valueSourceMap = this.createValueSourceMap(values, sources);
 | 
			
		||||
        
 | 
			
		||||
        values.forEach((value, index) => {
 | 
			
		||||
            const sourceInfo = valueSourceMap[index] || {};
 | 
			
		||||
            const attributeName = sourceInfo.meaningfulName || `Value ${index + 1}`;
 | 
			
		||||
            const sourceDetails = sourceInfo.details || '';
 | 
			
		||||
            
 | 
			
		||||
            html += `
 | 
			
		||||
                <div class="array-display-item">
 | 
			
		||||
                    <strong>Value ${index + 1}:</strong><br>
 | 
			
		||||
                <div class="attribute-item-compact">
 | 
			
		||||
                    <span class="attribute-key-compact">
 | 
			
		||||
                        <span class="correlation-attr-name">${this.escapeHtml(attributeName)}</span>
 | 
			
		||||
                        ${sourceDetails ? `<span class="correlation-hint" title="${this.escapeHtml(sourceDetails)}"> ℹ️</span>` : ''}
 | 
			
		||||
                    </span>
 | 
			
		||||
                    <span class="attribute-value-compact">
 | 
			
		||||
                        <code>${this.escapeHtml(String(value))}</code>
 | 
			
		||||
                    </span>
 | 
			
		||||
                </div>
 | 
			
		||||
            `;
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        html += '</div></div></details></div>';
 | 
			
		||||
        
 | 
			
		||||
        // Correlated nodes section
 | 
			
		||||
        // Correlated nodes section - reuses existing relationship display
 | 
			
		||||
        const correlatedNodes = metadata.correlated_nodes || [];
 | 
			
		||||
        if (correlatedNodes.length > 0) {
 | 
			
		||||
            html += `
 | 
			
		||||
@ -1034,6 +1192,44 @@ class DNSReconApp {
 | 
			
		||||
        return html;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a mapping of values to their source attribute information
 | 
			
		||||
     */
 | 
			
		||||
    createValueSourceMap(values, sources) {
 | 
			
		||||
        const valueSourceMap = {};
 | 
			
		||||
        
 | 
			
		||||
        // Group sources by their meaningful attributes
 | 
			
		||||
        const attrGroups = {};
 | 
			
		||||
        sources.forEach(source => {
 | 
			
		||||
            const meaningfulAttr = source.meaningful_attr || source.parent_attr || 'correlation';
 | 
			
		||||
            
 | 
			
		||||
            if (!attrGroups[meaningfulAttr]) {
 | 
			
		||||
                attrGroups[meaningfulAttr] = {
 | 
			
		||||
                    nodeIds: [],
 | 
			
		||||
                    paths: []
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
            attrGroups[meaningfulAttr].nodeIds.push(source.node_id);
 | 
			
		||||
            attrGroups[meaningfulAttr].paths.push(source.path || '');
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        // Map values to their best attribute names
 | 
			
		||||
        values.forEach((value, index) => {
 | 
			
		||||
            // Find the most meaningful attribute name
 | 
			
		||||
            const attrNames = Object.keys(attrGroups);
 | 
			
		||||
            const bestAttr = attrNames.find(attr => attr !== 'correlation' && attr !== 'unknown') || attrNames[0] || 'correlation';
 | 
			
		||||
            
 | 
			
		||||
            if (attrGroups[bestAttr]) {
 | 
			
		||||
                valueSourceMap[index] = {
 | 
			
		||||
                    meaningfulName: bestAttr,
 | 
			
		||||
                    details: `Found in: ${[...new Set(attrGroups[bestAttr].nodeIds)].join(', ')}`
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        
 | 
			
		||||
        return valueSourceMap;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    generateCorrelationObjectLayout(node) {
 | 
			
		||||
        const metadata = node.metadata || {};
 | 
			
		||||
        const values = metadata.values || [];
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user