Files
nexus/sreweekly/articles/507/02-the-dangers-of-ssl-certificates.html
2026-09-12 17:23:01 +08:00

1389 lines
148 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<title>The dangers of SSL certificates &#8211; Surfing Complexity</title>
<meta name='robots' content='max-image-preview:large' />
<!-- Async WordPress.com Remote Login -->
<script id="wpcom_remote_login_js">
var wpcom_remote_login_extra_auth = '';
function wpcom_remote_login_remove_dom_node_id( element_id ) {
var dom_node = document.getElementById( element_id );
if ( dom_node ) { dom_node.parentNode.removeChild( dom_node ); }
}
function wpcom_remote_login_remove_dom_node_classes( class_name ) {
var dom_nodes = document.querySelectorAll( '.' + class_name );
for ( var i = 0; i < dom_nodes.length; i++ ) {
dom_nodes[ i ].parentNode.removeChild( dom_nodes[ i ] );
}
}
function wpcom_remote_login_final_cleanup() {
wpcom_remote_login_remove_dom_node_classes( "wpcom_remote_login_msg" );
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_validate" );
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_js" );
wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_iframe" );
wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_styles" );
}
// Watch for messages back from the remote login
window.addEventListener( "message", function( e ) {
if ( e.origin === "https://r-login.wordpress.com" ) {
var data = {};
try {
data = JSON.parse( e.data );
} catch( e ) {
wpcom_remote_login_final_cleanup();
return;
}
if ( data.msg === 'LOGIN' ) {
// Clean up the login check iframe
wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" );
var id_regex = new RegExp( /^[0-9]+$/ );
var token_regex = new RegExp( /^.*|.*|.*$/ );
if (
token_regex.test( data.token )
&& id_regex.test( data.wpcomid )
) {
// We have everything we need to ask for a login
var script = document.createElement( "script" );
script.setAttribute( "id", "wpcom_remote_login_validate" );
script.src = '/remote-login.php?wpcom_remote_login=validate'
+ '&wpcomid=' + data.wpcomid
+ '&token=' + encodeURIComponent( data.token )
+ '&host=' + window.location.protocol
+ '//' + window.location.hostname
+ '&postid=7098'
+ '&is_singular=1';
document.body.appendChild( script );
}
return;
}
// Safari ITP, not logged in, so redirect
if ( data.msg === 'LOGIN-REDIRECT' ) {
window.location = 'https://wordpress.com/log-in?redirect_to=' + window.location.href;
return;
}
// Safari ITP, storage access failed, remove the request
if ( data.msg === 'LOGIN-REMOVE' ) {
var css_zap = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } @media screen and ( max-width: 782px ) { html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } }';
var style_zap = document.createElement( 'style' );
style_zap.type = 'text/css';
style_zap.appendChild( document.createTextNode( css_zap ) );
document.body.appendChild( style_zap );
var e = document.getElementById( 'wpcom_request_access_iframe' );
e.parentNode.removeChild( e );
document.cookie = 'wordpress_com_login_access=denied; path=/; max-age=31536000';
return;
}
// Safari ITP
if ( data.msg === 'REQUEST_ACCESS' ) {
console.log( 'request access: safari' );
// Check ITP iframe enable/disable knob
if ( wpcom_remote_login_extra_auth !== 'safari_itp_iframe' ) {
return;
}
// If we are in a "private window" there is no ITP.
var private_window = false;
try {
var opendb = window.openDatabase( null, null, null, null );
} catch( e ) {
private_window = true;
}
if ( private_window ) {
console.log( 'private window' );
return;
}
var iframe = document.createElement( 'iframe' );
iframe.id = 'wpcom_request_access_iframe';
iframe.setAttribute( 'scrolling', 'no' );
iframe.setAttribute( 'sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-top-navigation-by-user-activation' );
iframe.src = 'https://r-login.wordpress.com/remote-login.php?wpcom_remote_login=request_access&origin=' + encodeURIComponent( data.origin ) + '&wpcomid=' + encodeURIComponent( data.wpcomid );
var css = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 46px !important; } * html body { margin-top: 46px !important; } @media screen and ( max-width: 660px ) { html { margin-top: 71px !important; } * html body { margin-top: 71px !important; } #wpcom_request_access_iframe { display: block; height: 71px !important; } } #wpcom_request_access_iframe { border: 0px; height: 46px; position: fixed; top: 0; left: 0; width: 100%; min-width: 100%; z-index: 99999; background: #23282d; } ';
var style = document.createElement( 'style' );
style.type = 'text/css';
style.id = 'wpcom_request_access_styles';
style.appendChild( document.createTextNode( css ) );
document.body.appendChild( style );
document.body.appendChild( iframe );
}
if ( data.msg === 'DONE' ) {
wpcom_remote_login_final_cleanup();
}
}
}, false );
// Inject the remote login iframe after the page has had a chance to load
// more critical resources
window.addEventListener( "DOMContentLoaded", function( e ) {
var iframe = document.createElement( "iframe" );
iframe.style.display = "none";
iframe.setAttribute( "scrolling", "no" );
iframe.setAttribute( "id", "wpcom_remote_login_key" );
iframe.src = "https://r-login.wordpress.com/remote-login.php"
+ "?wpcom_remote_login=key"
+ "&origin=aHR0cHM6Ly9zdXJmaW5nY29tcGxleGl0eS5ibG9n"
+ "&wpcomid=30291541"
+ "&time=" + Math.floor( Date.now() / 1000 );
document.body.appendChild( iframe );
}, false );
</script>
<link rel='dns-prefetch' href='//s2.wp.com' />
<link rel='dns-prefetch' href='//widgets.wp.com' />
<link rel='dns-prefetch' href='//s1.wp.com' />
<link rel='dns-prefetch' href='//s0.wp.com' />
<link rel="alternate" type="application/rss+xml" title="Surfing Complexity &raquo; Feed" href="https://surfingcomplexity.blog/feed/" />
<link rel="alternate" type="application/rss+xml" title="Surfing Complexity &raquo; Comments Feed" href="https://surfingcomplexity.blog/comments/feed/" />
<link rel="alternate" type="application/rss+xml" title="Surfing Complexity &raquo; The dangers of SSL&nbsp;certificates Comments Feed" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/feed/" />
<script type="text/javascript">
/* <![CDATA[ */
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function () {
oldonload();
func();
}
}
}
/* ]]> */
</script>
<style id="wp-img-auto-sizes-contain-inline-css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-2-1' href='/_static/??-eJxtjEsKgDAMBS9kjbqwuBDPUtog9o9J8fpaEQSRBw8GhoEjC50iY2QIRWRf1i0SWOSstHsYQkr1TPFIsKNXjEbkRPyhVhM18J/0m8M3fFPVlzD3UnbTtWG0J2CTNNk=&cssminify=yes' type='text/css' media='all' />
<style id="wp-emoji-styles-inline-css">
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id="wp-block-library-inline-css">
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/common.min.css */
</style>
<style id="wp-block-quote-inline-css">
.wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right}.wp-block-quote>cite{display:block}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/quote/style.min.css */
</style>
<style id="wp-block-quote-theme-inline-css">
.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/quote/theme.min.css */
</style>
<style id="wp-block-image-inline-css">
.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/image/style.min.css */
</style>
<style id="wp-block-image-theme-inline-css">
:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:hsla(0,0%,100%,.65)}.wp-block-image{margin:0 0 1em}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/image/theme.min.css */
</style>
<style id="wp-block-latest-posts-inline-css">
.wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both;overflow-wrap:break-word}.wp-block-latest-posts.is-grid:not(.is-layout-grid){display:flex;flex-wrap:wrap}.wp-block-latest-posts.is-grid:not(.is-layout-grid) li{margin:0 1.25em 1.25em 0;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2:not(.is-layout-grid) li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2:not(.is-layout-grid) li:nth-child(2n){margin-right:0}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li:nth-child(3n){margin-right:0}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li:nth-child(4n){margin-right:0}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li:nth-child(5n){margin-right:0}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li:nth-child(6n){margin-right:0}}@media (max-width:600px){.wp-block-latest-posts-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid){grid-template-columns:1fr}}:root :where(.wp-block-latest-posts.is-grid){padding:0}:root :where(.wp-block-latest-posts.wp-block-latest-posts__list){padding-left:0}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt,.wp-block-latest-posts__post-full-content{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/latest-posts/style.min.css */
</style>
<style id="wp-block-list-inline-css">
ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/list/style.min.css */
</style>
<style id="wp-block-paragraph-inline-css">
.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/paragraph/style.min.css */
</style>
<style id="wp-block-search-inline-css">
.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}:where(.wp-block-search__label){width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){-webkit-appearance:initial;-moz-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/search/style.min.css */
</style>
<style id="wp-block-search-theme-inline-css">
:where(.wp-block-search .wp-block-search__label){font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/search/theme.min.css */
</style>
<style id="wp-block-library-inline-css-extra">
.has-text-align-justify {
text-align:justify;
}
.has-text-align-justify{text-align:justify;}
/*# sourceURL=wp-block-library-inline-css */
</style>
<style id="classic-theme-styles-inline-css">
.wp-block-button__link{background-color:#32373c;border-radius:9999px;box-shadow:none;color:#fff;font-size:1.125em;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-file__button{background:#32373c;color:#fff}.wp-block-accordion-heading{margin:0}.wp-block-accordion-heading__toggle{background-color:inherit!important;color:inherit!important}.wp-block-accordion-heading__toggle:not(:focus-visible){outline:none}.wp-block-accordion-heading__toggle:focus,.wp-block-accordion-heading__toggle:hover{background-color:inherit!important;border:none;box-shadow:none;color:inherit;padding:var(--wp--preset--spacing--20,1em) 0;text-decoration:none}.wp-block-accordion-heading__toggle:focus-visible{outline:auto;outline-offset:0}.wp-block-tab:not(.has-text-color){color:inherit!important}.wp-block-tab:not(.has-background){background-color:inherit!important}.wp-block-tab:focus,.wp-block-tab:hover{text-decoration:none}.wp-block-tab:focus-visible{outline:auto;outline-offset:0}
/*# sourceURL=/wp-content/plugins/gutenberg-core/v23.9.1/build/styles/block-library/classic.min.css */
</style>
<style id="coblocks-inline-format-inline-css">
.uppercase{text-transform:uppercase}
/*# sourceURL=coblocks-inline-format-inline-css */
</style>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-12-1' href='/_static/??-eJx9jEEOAiEQBD/kQECjeDC+ZWEnijIwYWA3/l72op689KFTVXplCCU3zE1z6reYRYfiUwlP0VYZpwxIJE4IFRd10HOU9iFA2iuhCiI7/ROiDt9WxfETT20jCOc4YUIa2D9t5eGA91xRBMZS7ATtPkTZvCtdzNEZt7f2fHq8Afl7R7w=&cssminify=yes' type='text/css' media='all' />
<style id="global-styles-inline-css">
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #fff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--medium-blue: #0087be;--wp--preset--color--bright-blue: #00aadc;--wp--preset--color--dark-gray: #4d4d4b;--wp--preset--color--light-gray: #b3b3b1;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--albert-sans: 'Albert Sans', sans-serif;--wp--preset--font-family--alegreya: Alegreya, serif;--wp--preset--font-family--arvo: Arvo, serif;--wp--preset--font-family--bodoni-moda: 'Bodoni Moda', serif;--wp--preset--font-family--bricolage-grotesque: 'Bricolage Grotesque', sans-serif;--wp--preset--font-family--cabin: Cabin, sans-serif;--wp--preset--font-family--chivo: Chivo, sans-serif;--wp--preset--font-family--commissioner: Commissioner, sans-serif;--wp--preset--font-family--cormorant: Cormorant, serif;--wp--preset--font-family--courier-prime: 'Courier Prime', monospace;--wp--preset--font-family--crimson-pro: 'Crimson Pro', serif;--wp--preset--font-family--dm-mono: 'DM Mono', monospace;--wp--preset--font-family--dm-sans: 'DM Sans', sans-serif;--wp--preset--font-family--dm-serif-display: 'DM Serif Display', serif;--wp--preset--font-family--domine: Domine, serif;--wp--preset--font-family--eb-garamond: 'EB Garamond', serif;--wp--preset--font-family--epilogue: Epilogue, sans-serif;--wp--preset--font-family--fahkwang: Fahkwang, sans-serif;--wp--preset--font-family--figtree: Figtree, sans-serif;--wp--preset--font-family--fira-sans: 'Fira Sans', sans-serif;--wp--preset--font-family--fjalla-one: 'Fjalla One', sans-serif;--wp--preset--font-family--fraunces: Fraunces, serif;--wp--preset--font-family--gabarito: Gabarito, system-ui;--wp--preset--font-family--ibm-plex-mono: 'IBM Plex Mono', monospace;--wp--preset--font-family--ibm-plex-sans: 'IBM Plex Sans', sans-serif;--wp--preset--font-family--ibarra-real-nova: 'Ibarra Real Nova', serif;--wp--preset--font-family--instrument-serif: 'Instrument Serif', serif;--wp--preset--font-family--inter: Inter, sans-serif;--wp--preset--font-family--josefin-sans: 'Josefin Sans', sans-serif;--wp--preset--font-family--jost: Jost, sans-serif;--wp--preset--font-family--libre-baskerville: 'Libre Baskerville', serif;--wp--preset--font-family--libre-franklin: 'Libre Franklin', sans-serif;--wp--preset--font-family--literata: Literata, serif;--wp--preset--font-family--lora: Lora, serif;--wp--preset--font-family--merriweather: Merriweather, serif;--wp--preset--font-family--montserrat: Montserrat, sans-serif;--wp--preset--font-family--newsreader: Newsreader, serif;--wp--preset--font-family--noto-sans-mono: 'Noto Sans Mono', sans-serif;--wp--preset--font-family--nunito: Nunito, sans-serif;--wp--preset--font-family--open-sans: 'Open Sans', sans-serif;--wp--preset--font-family--overpass: Overpass, sans-serif;--wp--preset--font-family--pt-serif: 'PT Serif', serif;--wp--preset--font-family--petrona: Petrona, serif;--wp--preset--font-family--piazzolla: Piazzolla, serif;--wp--preset--font-family--playfair-display: 'Playfair Display', serif;--wp--preset--font-family--plus-jakarta-sans: 'Plus Jakarta Sans', sans-serif;--wp--preset--font-family--poppins: Poppins, sans-serif;--wp--preset--font-family--raleway: Raleway, sans-serif;--wp--preset--font-family--roboto: Roboto, sans-serif;--wp--preset--font-family--roboto-slab: 'Roboto Slab', serif;--wp--preset--font-family--rubik: Rubik, sans-serif;--wp--preset--font-family--rufina: Rufina, serif;--wp--preset--font-family--sora: Sora, sans-serif;--wp--preset--font-family--source-sans-3: 'Source Sans 3', sans-serif;--wp--preset--font-family--source-serif-4: 'Source Serif 4', serif;--wp--preset--font-family--space-mono: 'Space Mono', monospace;--wp--preset--font-family--syne: Syne, sans-serif;--wp--preset--font-family--texturina: Texturina, serif;--wp--preset--font-family--urbanist: Urbanist, sans-serif;--wp--preset--font-family--work-sans: 'Work Sans', sans-serif;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-medium-blue-color{color: var(--wp--preset--color--medium-blue) !important;}.has-bright-blue-color{color: var(--wp--preset--color--bright-blue) !important;}.has-dark-gray-color{color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-color{color: var(--wp--preset--color--light-gray) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-medium-blue-background-color{background-color: var(--wp--preset--color--medium-blue) !important;}.has-bright-blue-background-color{background-color: var(--wp--preset--color--bright-blue) !important;}.has-dark-gray-background-color{background-color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-background-color{background-color: var(--wp--preset--color--light-gray) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-medium-blue-border-color{border-color: var(--wp--preset--color--medium-blue) !important;}.has-bright-blue-border-color{border-color: var(--wp--preset--color--bright-blue) !important;}.has-dark-gray-border-color{border-color: var(--wp--preset--color--dark-gray) !important;}.has-light-gray-border-color{border-color: var(--wp--preset--color--light-gray) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-albert-sans-font-family{font-family: var(--wp--preset--font-family--albert-sans) !important;}.has-alegreya-font-family{font-family: var(--wp--preset--font-family--alegreya) !important;}.has-arvo-font-family{font-family: var(--wp--preset--font-family--arvo) !important;}.has-bodoni-moda-font-family{font-family: var(--wp--preset--font-family--bodoni-moda) !important;}.has-bricolage-grotesque-font-family{font-family: var(--wp--preset--font-family--bricolage-grotesque) !important;}.has-cabin-font-family{font-family: var(--wp--preset--font-family--cabin) !important;}.has-chivo-font-family{font-family: var(--wp--preset--font-family--chivo) !important;}.has-commissioner-font-family{font-family: var(--wp--preset--font-family--commissioner) !important;}.has-cormorant-font-family{font-family: var(--wp--preset--font-family--cormorant) !important;}.has-courier-prime-font-family{font-family: var(--wp--preset--font-family--courier-prime) !important;}.has-crimson-pro-font-family{font-family: var(--wp--preset--font-family--crimson-pro) !important;}.has-dm-mono-font-family{font-family: var(--wp--preset--font-family--dm-mono) !important;}.has-dm-sans-font-family{font-family: var(--wp--preset--font-family--dm-sans) !important;}.has-dm-serif-display-font-family{font-family: var(--wp--preset--font-family--dm-serif-display) !important;}.has-domine-font-family{font-family: var(--wp--preset--font-family--domine) !important;}.has-eb-garamond-font-family{font-family: var(--wp--preset--font-family--eb-garamond) !important;}.has-epilogue-font-family{font-family: var(--wp--preset--font-family--epilogue) !important;}.has-fahkwang-font-family{font-family: var(--wp--preset--font-family--fahkwang) !important;}.has-figtree-font-family{font-family: var(--wp--preset--font-family--figtree) !important;}.has-fira-sans-font-family{font-family: var(--wp--preset--font-family--fira-sans) !important;}.has-fjalla-one-font-family{font-family: var(--wp--preset--font-family--fjalla-one) !important;}.has-fraunces-font-family{font-family: var(--wp--preset--font-family--fraunces) !important;}.has-gabarito-font-family{font-family: var(--wp--preset--font-family--gabarito) !important;}.has-ibm-plex-mono-font-family{font-family: var(--wp--preset--font-family--ibm-plex-mono) !important;}.has-ibm-plex-sans-font-family{font-family: var(--wp--preset--font-family--ibm-plex-sans) !important;}.has-ibarra-real-nova-font-family{font-family: var(--wp--preset--font-family--ibarra-real-nova) !important;}.has-instrument-serif-font-family{font-family: var(--wp--preset--font-family--instrument-serif) !important;}.has-inter-font-family{font-family: var(--wp--preset--font-family--inter) !important;}.has-josefin-sans-font-family{font-family: var(--wp--preset--font-family--josefin-sans) !important;}.has-jost-font-family{font-family: var(--wp--preset--font-family--jost) !important;}.has-libre-baskerville-font-family{font-family: var(--wp--preset--font-family--libre-baskerville) !important;}.has-libre-franklin-font-family{font-family: var(--wp--preset--font-family--libre-franklin) !important;}.has-literata-font-family{font-family: var(--wp--preset--font-family--literata) !important;}.has-lora-font-family{font-family: var(--wp--preset--font-family--lora) !important;}.has-merriweather-font-family{font-family: var(--wp--preset--font-family--merriweather) !important;}.has-montserrat-font-family{font-family: var(--wp--preset--font-family--montserrat) !important;}.has-newsreader-font-family{font-family: var(--wp--preset--font-family--newsreader) !important;}.has-noto-sans-mono-font-family{font-family: var(--wp--preset--font-family--noto-sans-mono) !important;}.has-nunito-font-family{font-family: var(--wp--preset--font-family--nunito) !important;}.has-open-sans-font-family{font-family: var(--wp--preset--font-family--open-sans) !important;}.has-overpass-font-family{font-family: var(--wp--preset--font-family--overpass) !important;}.has-pt-serif-font-family{font-family: var(--wp--preset--font-family--pt-serif) !important;}.has-petrona-font-family{font-family: var(--wp--preset--font-family--petrona) !important;}.has-piazzolla-font-family{font-family: var(--wp--preset--font-family--piazzolla) !important;}.has-playfair-display-font-family{font-family: var(--wp--preset--font-family--playfair-display) !important;}.has-plus-jakarta-sans-font-family{font-family: var(--wp--preset--font-family--plus-jakarta-sans) !important;}.has-poppins-font-family{font-family: var(--wp--preset--font-family--poppins) !important;}.has-raleway-font-family{font-family: var(--wp--preset--font-family--raleway) !important;}.has-roboto-font-family{font-family: var(--wp--preset--font-family--roboto) !important;}.has-roboto-slab-font-family{font-family: var(--wp--preset--font-family--roboto-slab) !important;}.has-rubik-font-family{font-family: var(--wp--preset--font-family--rubik) !important;}.has-rufina-font-family{font-family: var(--wp--preset--font-family--rufina) !important;}.has-sora-font-family{font-family: var(--wp--preset--font-family--sora) !important;}.has-source-sans-3-font-family{font-family: var(--wp--preset--font-family--source-sans-3) !important;}.has-source-serif-4-font-family{font-family: var(--wp--preset--font-family--source-serif-4) !important;}.has-space-mono-font-family{font-family: var(--wp--preset--font-family--space-mono) !important;}.has-syne-font-family{font-family: var(--wp--preset--font-family--syne) !important;}.has-texturina-font-family{font-family: var(--wp--preset--font-family--texturina) !important;}.has-urbanist-font-family{font-family: var(--wp--preset--font-family--urbanist) !important;}.has-work-sans-font-family{font-family: var(--wp--preset--font-family--work-sans) !important;}
:where(.wp-block-latest-posts.is-layout-flex){gap: 1.25em;}:where(.wp-block-latest-posts.is-layout-grid){gap: 1.25em;}
/*# sourceURL=global-styles-inline-css */
</style>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-14-1' href='/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/verbum-comments/verbum-comments.css?m=1785895867i&cssminify=yes' type='text/css' media='all' />
<link rel='stylesheet' id='verbum-gutenberg-css-css' href='https://widgets.wp.com/verbum-block-editor/block-editor.css?ver=1771405207' media='all' />
<link crossorigin='anonymous' rel='stylesheet' id='all-css-16-1' href='/_static/??-eJydkNEKwjAMRX/IGh0D7YP4KbLV2GVr09J2DP/ebAgOFB/2Eu59OPcmgSkqE7ggF/Cjim60xBl6LLExw9uDD4HhRmzAImMiIfJvuTc572AVWjr0mCGOLRDfMaIMLkq8o9xhUhXk8nS4BRQEWhfMsKl2PmepVlM0wX9FrN6RUGqsSLt0fuw/yGJQslxTSJ63NurhGkozevWX4+lcaX3Qte5fvXGUcQ==&cssminify=yes' type='text/css' media='all' />
<link crossorigin='anonymous' rel='stylesheet' id='print-css-17-1' href='/wp-content/mu-plugins/global-print/global-print.css?m=1465851035i&cssminify=yes' type='text/css' media='print' />
<style id="jetpack-global-styles-frontend-style-inline-css">
:root { --font-headings: unset; --font-base: unset; --font-headings-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; --font-base-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;}
/*# sourceURL=jetpack-global-styles-frontend-style-inline-css */
</style>
<link crossorigin='anonymous' rel='stylesheet' id='all-css-20-1' href='/_static/??-eJyNjcEKAjEMRH/ImhVlqwfxU6TbhrZrmhTTIv69u+JFvHgZ5sHwBh7VeOGG3KB0U6nHzAoztur87cNQRNYInVBBk7tjcCE83zVz3HrVDfxvumb2MPVMAVR8dmRIougX/DhbwrK8pwNEksnROriU884e9+PJDnaYXxwFS20=&cssminify=yes' type='text/css' media='all' />
<script id="jetpack_related-posts-js-extra">
var related_posts_js_options = {"post_heading":"h4"};
//# sourceURL=jetpack_related-posts-js-extra
</script>
<script id="wpcom-actionbar-placeholder-js-extra">
var actionbardata = {"siteID":"30291541","postID":"7098","siteURL":"https://surfingcomplexity.blog","xhrURL":"https://surfingcomplexity.blog/wp-admin/admin-ajax.php","nonce":"e8f3aebd24","isLoggedIn":"","statusMessage":"","subsEmailDefault":"instantly","proxyScriptUrl":"https://s0.wp.com/wp-content/js/wpcom-proxy-request.js?m=1513050504i&amp;ver=20211021","shortlink":"https://wp.me/p236df-1Qu","i18n":{"followedText":"New posts from this site will now appear in your \u003Ca href=\"https://wordpress.com/reader\"\u003EReader\u003C/a\u003E","foldBar":"Collapse this bar","unfoldBar":"Expand this bar","shortLinkCopied":"Shortlink copied to clipboard."}};
//# sourceURL=wpcom-actionbar-placeholder-js-extra
</script>
<script id="jetpack-mu-wpcom-settings-js-before">
var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https://s1.wp.com/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/"};
//# sourceURL=jetpack-mu-wpcom-settings-js-before
</script>
<script crossorigin='anonymous' type='text/javascript' src='/_static/??/wp-content/mu-plugins/jetpack-plugin/moon/_inc/build/related-posts/related-posts.min.js,/wp-content/js/rlt-proxy.js?m=1788798821j'></script>
<script id="rlt-proxy-js-after">
rltInitialize( {"token":null,"iframeOrigins":["https:\/\/widgets.wp.com"]} );
//# sourceURL=rlt-proxy-js-after
</script>
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://lorinhochstein.wordpress.com/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress.com" />
<link rel="canonical" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/" />
<link rel='shortlink' href='https://wp.me/p236df-1Qu' />
<link rel="alternate" type="application/json+oembed" href="https://public-api.wordpress.com/oembed/?format=json&amp;url=https%3A%2F%2Fsurfingcomplexity.blog%2F2025%2F12%2F27%2Fthe-dangers-of-ssl-certificates%2F&amp;for=wpcom-auto-discovery" /><link rel="alternate" type="application/xml+oembed" href="https://public-api.wordpress.com/oembed/?format=xml&amp;url=https%3A%2F%2Fsurfingcomplexity.blog%2F2025%2F12%2F27%2Fthe-dangers-of-ssl-certificates%2F&amp;for=wpcom-auto-discovery" />
<!-- Jetpack Open Graph Tags -->
<meta property="og:type" content="article" />
<meta property="og:title" content="The dangers of SSL certificates" />
<meta property="og:url" content="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/" />
<meta property="og:description" content="Yesterday, the Bazel team at Google did not have a very Merry Boxing Day. An SSL certificate expired for and as shown in this screenshot from the github issue. This expired certificate apparently b…" />
<meta property="article:published_time" content="2025-12-27T22:02:59+00:00" />
<meta property="article:modified_time" content="2025-12-27T22:02:59+00:00" />
<meta property="og:site_name" content="Surfing Complexity" />
<meta property="og:image" content="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png" />
<meta property="og:image:width" content="1915" />
<meta property="og:image:height" content="1057" />
<meta property="og:image:alt" content="Bazel expired certificate" />
<meta property="og:locale" content="en_US" />
<meta property="article:publisher" content="https://www.facebook.com/WordPresscom" />
<meta name="twitter:text:title" content="The dangers of SSL&nbsp;certificates" />
<meta name="twitter:image" content="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=640" />
<meta name="twitter:image:alt" content="Bazel expired certificate" />
<meta name="twitter:card" content="summary_large_image" />
<!-- End Jetpack Open Graph Tags -->
<link rel='openid.server' href='https://surfingcomplexity.blog/?openidserver=1' />
<link rel='openid.delegate' href='https://surfingcomplexity.blog/' />
<link rel="search" type="application/opensearchdescription+xml" href="https://surfingcomplexity.blog/osd.xml" title="Surfing Complexity" />
<link rel="search" type="application/opensearchdescription+xml" href="https://s1.wp.com/opensearch.xml" title="WordPress.com" />
<link rel="pingback" href="https://surfingcomplexity.blog/xmlrpc.php"> <style type="text/css">
.recentcomments a {
display: inline !important;
padding: 0 !important;
margin: 0 !important;
}
table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
border: 0px;
margin: 0;
}
table.recentcommentsavatartop a, table.recentcommentsavatarend a {
border: 0px !important;
background-color: transparent !important;
}
td.recentcommentsavatarend, td.recentcommentsavatartop {
padding: 0px 0px 1px 0px;
margin: 0px;
}
td.recentcommentstextend {
border: none !important;
padding: 0px 0px 2px 10px;
}
.rtl td.recentcommentstextend {
padding: 0px 10px 2px 0px;
}
td.recentcommentstexttop {
border: none;
padding: 0px 0px 0px 10px;
}
.rtl td.recentcommentstexttop {
padding: 0px 10px 0px 0px;
}
</style>
<meta name="description" content="Yesterday, the Bazel team at Google did not have a very Merry Boxing Day. An SSL certificate expired for https://bcr.bazel.build and https://releases.bazel.build, as shown in this screenshot from the github issue. This expired certificate apparently broke the build workflow of users who use Bazel, who were faced with the following error message: ERROR: Error computing&hellip;" />
<link rel="icon" href="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=32" sizes="32x32" />
<link rel="icon" href="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120" sizes="192x192" />
<link rel="apple-touch-icon" href="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120" />
<meta name="msapplication-TileImage" content="https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120" />
<link crossorigin='anonymous' rel='stylesheet' id='all-css-0-5' href='/_static/??-eJyNjMEKhDAMBX9IfaiIXsRPWdxskGqbFNPi7y+CevY4wzA4YkkqiSUh5DL6vDgxrJziTNvFCKqCjxPC1yttBjtc5L0iswLvD0F/2bOB5l2zsX+iW5zDKYx1P3RN07b1sP4BKPs7aw==&cssminify=yes' type='text/css' media='all' />
</head>
<body class="wp-singular post-template-default single single-post postid-7098 single-format-standard wp-embed-responsive wp-theme-pubindependent-publisher-2 customizer-styles-applied has-sidebar jetpack-reblog-enabled">
<div id="page" class="hfeed site">
<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
<div id="hero-header" class="site-hero-section">
<header id="masthead" class="site-header" role="banner">
<div class="inner">
<div class="site-branding">
<a class="site-logo-link" href="https://surfingcomplexity.blog/">
<img referrerpolicy="no-referrer" alt='Unknown&#039;s avatar' src='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&#038;d=identicon&#038;r=G' srcset='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&#038;d=identicon&#038;r=G 1x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=120&#038;d=identicon&#038;r=G 1.5x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=160&#038;d=identicon&#038;r=G 2x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=240&#038;d=identicon&#038;r=G 3x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=320&#038;d=identicon&#038;r=G 4x' class='avatar avatar-80 site-logo-image' height='80' width='80' loading='eager' decoding='async' /> </a><!-- .site-logo-link -->
<p class="site-title"><a href="https://surfingcomplexity.blog/" rel="home">Surfing Complexity</a></p>
<p class="site-description">Lorin Hochstein&#039;s ramblings about software, complex systems, and incidents.</p>
</div><!-- .site-branding -->
</div><!-- .inner -->
</header><!-- #masthead -->
</div>
<div id="content-wrapper" class="content-wrapper">
<div id="content" class="site-content">
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<article id="post-7098" class="post-7098 post type-post status-publish format-standard hentry category-incidents">
<header class="entry-header">
<h1 class="entry-title">The dangers of SSL&nbsp;certificates</h1> </header><!-- .entry-header --> <div class="entry-meta">
<span class="byline">
<a href="https://surfingcomplexity.blog/author/lorinh/" rel="author">Lorin Hochstein</a> </span>
<span class="cat-links">
<a href="https://surfingcomplexity.blog/category/systems/incidents/" rel="category tag">incidents</a> </span><!-- .cat-links -->
<span class="published-on">
<time class="entry-date published updated" datetime="2025-12-27T14:02:59-08:00">December 27, 2025</time> </span>
<span class="word-count">2 Minutes</span> </div><!-- .entry-meta -->
<div class="entry-content">
<p class="wp-block-paragraph">Yesterday, the Bazel team at Google did not have a very Merry Boxing Day. An SSL certificate expired for <a href="https://bcr.bazel.build">https://bcr.bazel.build</a> and <a href="https://releases.bazel.build">https://releases.bazel.build</a>, as shown in this screenshot from the <a href="https://github.com/bazelbuild/bazel/issues/28101">github issue</a>.</p>
<figure class="wp-block-image size-large"><a href="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png"><img data-attachment-id="7101" data-permalink="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/image-473/" data-orig-file="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png" data-orig-size="1915,1057" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=1024" width="1024" height="565" src="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=1024" alt="" class="wp-image-7101" srcset="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=1024 1024w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=150 150w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=300 300w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=768 768w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png?w=1440 1440w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-4.png 1915w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
<p class="wp-block-paragraph">This expired certificate apparently broke the build workflow of users who use <a href="https://bazel.build/">Bazel</a>, who were faced with the <a href="https://github.com/bazelbuild/bazel/issues/28101#issuecomment-3692675937">following error message</a>:</p>
<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate" title="">
ERROR: Error computing the main repository mapping: Error accessing registry https://bcr.bazel.build/: Failed to fetch registry file https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel: PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed
</pre></div>
<p class="wp-block-paragraph">After mitigation, Xùdōng Yáng provided a brief summary of the incident on the Github ticket:</p>
<figure class="wp-block-image size-large"><a href="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-6.png"><img data-attachment-id="7105" data-permalink="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/image-475/" data-orig-file="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-6.png" data-orig-size="930,209" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image" data-image-description="" data-image-caption="" data-large-file="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-6.png?w=930" width="930" height="209" src="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-6.png?w=930" alt="" class="wp-image-7105" srcset="https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-6.png 930w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-6.png?w=150 150w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-6.png?w=300 300w, https://surfingcomplexity.blog/wp-content/uploads/2025/12/image-6.png?w=768 768w" sizes="(max-width: 930px) 100vw, 930px" /></a></figure>
<p class="wp-block-paragraph">Say the words &#8220;expired SSL certificate&#8221; to any senior software engineer and watch the expression on their face. Everybody in this industry has been bitten by expired certs, including people who work at orgs that use automated certificate renewal. In fact, this very case is an example of an automated certificate renewal system that failed! From the screenshot above:</p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">it was an <strong>auto-renewal being bricked</strong> due to some new subdomain additions, and the renewal failures didn&#8217;t send notifications for whatever reason.</p>
</blockquote>
<p class="wp-block-paragraph">The reality is that SSL certificates are a fundamentally <em>dangerous</em> technology, and the Bazel case is a great example of why. With SSL certificates, you usually don&#8217;t have the opportunity to build up operational experience working with them, unless something goes wrong. And things don&#8217;t go wrong that often with certificates, especially if you&#8217;re using automated cert renewal! That means when something does go wrong, you&#8217;re effectively starting from scratch to figure out how to fix it, which is not a good place to be. Once again, from that summary:</p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">And then it took some Bazel team members <strong>who were very unfamiliar with this whole area</strong> to scramble to read documentation and secure permissions&#8230;</p>
</blockquote>
<p class="wp-block-paragraph">Now, I don&#8217;t know the specifics of the Bazel team composition: it may very well be that they have local SSL certificate expertise on the team, but those members were out-of-office because of the holiday. But even if that&#8217;s the case, with an automated set-it-and-forget-it solution, the knowledge isn&#8217;t going to spread across the team, because why would it? It just works on its own.</p>
<p class="wp-block-paragraph">That is, until it stops working. And that&#8217;s the other dangerous thing about SSL certificates: the failure mode is the opposite of graceful degradation. It&#8217;s not like there&#8217;s an increasing percentage of requests that fail as you get closer to the deadline. Instead, in one minute, everything&#8217;s working just fine, and in the next minute, every http request fails. There&#8217;s no natural signal back to the operators that the SSL certificate is getting close to expiry. To make things worse, there&#8217;s no staging of the change that triggers the expiration, because the change is time, and time marches on for everyone. You can&#8217;t set the SSL certificate expiration so it kicks in at different times for different cohorts of users. </p>
<p class="wp-block-paragraph">In other words, SSL certs are a technology with an expected failure mode (expiration) that absolutely maximizes blast radius (a hard failure for 100% of users), without any natural feedback to operators that the system is at imminent risk of critical failure. And with automated cert renewal, you are increasing the likelihood that the responders will not have experience with renewing certificates. </p>
<p class="wp-block-paragraph">Is it any wonder that these keep biting us? </p>
<div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"><div class="sharedaddy sd-sharing-enabled"><div class="robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing"><h3 class="sd-title">Share this:</h3><div class="sd-content"><ul><li class="share-twitter"><a rel="nofollow noopener noreferrer"
data-shared="sharing-twitter-7098"
class="share-twitter sd-button share-icon"
href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?share=twitter"
target="_blank"
aria-labelledby="sharing-twitter-7098"
>
<span id="sharing-twitter-7098" hidden>Share on X (Opens in new window)</span>
<span>X</span>
</a></li><li class="share-facebook"><a rel="nofollow noopener noreferrer"
data-shared="sharing-facebook-7098"
class="share-facebook sd-button share-icon"
href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?share=facebook"
target="_blank"
aria-labelledby="sharing-facebook-7098"
>
<span id="sharing-facebook-7098" hidden>Share on Facebook (Opens in new window)</span>
<span>Facebook</span>
</a></li><li class="share-end"></li></ul></div></div></div><div class='sharedaddy sd-block sd-like jetpack-likes-widget-wrapper jetpack-likes-widget-unloaded' id='like-post-wrapper-30291541-7098-6aa4f70246441' data-src='//widgets.wp.com/likes/index.html?ver=20260912#blog_id=30291541&amp;post_id=7098&amp;origin=lorinhochstein.wordpress.com&amp;obj_id=30291541-7098-6aa4f70246441&amp;domain=surfingcomplexity.blog' data-name='like-post-frame-30291541-7098-6aa4f70246441' data-title='Like or Reblog'><div class='likes-widget-placeholder post-likes-widget-placeholder' style='height: 55px;'><span class='button'><span>Like</span></span> <span class='loading'>Loading...</span></div><span class='sd-text-color'></span><a class='sd-link-color'></a></div>
<div id='jp-relatedposts' class='jp-relatedposts' >
</div></div> </div><!-- .entry-content -->
<div class="entry-footer">
</div><!-- .entry-footer -->
<div class="entry-author-wrapper">
<div class="entry-author author-avatar-show">
<div class="author-avatar">
<img referrerpolicy="no-referrer" alt='Unknown&#039;s avatar' src='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&#038;d=identicon&#038;r=G' srcset='https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=80&#038;d=identicon&#038;r=G 1x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=120&#038;d=identicon&#038;r=G 1.5x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=160&#038;d=identicon&#038;r=G 2x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=240&#038;d=identicon&#038;r=G 3x, https://0.gravatar.com/avatar/f2641f12e815a54896f8f2ac04660c52efb896e09131390ad2a6f2f5fca81432?s=320&#038;d=identicon&#038;r=G 4x' class='avatar avatar-80' height='80' width='80' decoding='async' /> </div><!-- .author-avatar -->
<div class="author-heading">
<h2 class="author-title">
Published by <span class="author-name">Lorin Hochstein</span> </h2>
</div><!-- .author-heading -->
<p class="author-bio">
<a class="author-link" href="https://surfingcomplexity.blog/author/lorinh/" rel="author">
View all posts by Lorin Hochstein </a>
</p><!-- .author-bio -->
</div><!-- .entry-auhtor -->
<div class="site-posted-on">
<strong>Published</strong>
<time class="entry-date published updated" datetime="2025-12-27T14:02:59-08:00">December 27, 2025</time> </div><!-- .site-posted-on -->
</div>
</article><!-- #post-## -->
<nav class="navigation post-navigation" aria-label="Posts">
<h2 class="screen-reader-text">Post navigation</h2>
<div class="nav-links"><div class="nav-previous"><a href="https://surfingcomplexity.blog/2025/12/23/saturation-waymo-edition/" rel="prev"><span class="meta-nav screen-reader-text">Previous Post</span> Saturation: Waymo edition</a></div><div class="nav-next"><a href="https://surfingcomplexity.blog/2025/12/28/on-intuition-and-anxiety/" rel="next"><span class="meta-nav screen-reader-text">Next Post</span> On intuition and&nbsp;anxiety</a></div></div>
</nav>
<div id="comments" class="comments-area">
<h2 class="comments-title">
12 thoughts on &ldquo;<span>The dangers of SSL&nbsp;certificates</span>&rdquo; </h2><!-- .comments-title -->
<ol class="comment-list">
<li id="comment-9765" class="comment byuser comment-author-ezrasf even thread-even depth-1">
<article id="div-comment-9765" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<img referrerpolicy="no-referrer" alt='Ezra SF&#039;s avatar' src='https://1.gravatar.com/avatar/a9414a1ea745b9abce3d779bed96313fcdf02d3dc277a7540277eb6299cd7466?s=48&#038;d=identicon&#038;r=G' srcset='https://1.gravatar.com/avatar/a9414a1ea745b9abce3d779bed96313fcdf02d3dc277a7540277eb6299cd7466?s=48&#038;d=identicon&#038;r=G 1x, https://1.gravatar.com/avatar/a9414a1ea745b9abce3d779bed96313fcdf02d3dc277a7540277eb6299cd7466?s=72&#038;d=identicon&#038;r=G 1.5x, https://1.gravatar.com/avatar/a9414a1ea745b9abce3d779bed96313fcdf02d3dc277a7540277eb6299cd7466?s=96&#038;d=identicon&#038;r=G 2x, https://1.gravatar.com/avatar/a9414a1ea745b9abce3d779bed96313fcdf02d3dc277a7540277eb6299cd7466?s=144&#038;d=identicon&#038;r=G 3x, https://1.gravatar.com/avatar/a9414a1ea745b9abce3d779bed96313fcdf02d3dc277a7540277eb6299cd7466?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /> <b class="fn"><a href="https://ezrasf.com/" class="url" rel="ugc external nofollow">Ezra SF</a></b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comment-9765"><time datetime="2025-12-27T17:03:24-08:00">December 27, 2025 at 5:03 pm</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p>Our SSL issuer sends emails, but it depends on the recipients paying attention. Thirty days out they start, but typically they sit on them until a week ahead. This creates complacency of people ignoring the notification, which is dangerous. </p>
<p>We also have weird flows. The recipients have to send a request to another team who initiate yhe renewal. Another approves it. Then where the certificate gets updated is all over the place. Some are to appliances. Some are on servers. Some get sent to vendors. It&#8217;s wild.</p>
</div><!-- .comment-content -->
<div class="reply"><a rel="nofollow" class="comment-reply-link" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?replytocom=9765#respond" data-commentid="9765" data-postid="7098" data-belowelement="div-comment-9765" data-respondelement="respond" data-replyto="Reply to Ezra SF" aria-label="Reply to Ezra SF">Reply</a></div> </article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-9767" class="comment byuser comment-author-ferdnyc odd alt thread-odd thread-alt depth-1 parent">
<article id="div-comment-9767" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<img referrerpolicy="no-referrer" alt='FeRDNYC&#039;s avatar' src='https://1.gravatar.com/avatar/170289e3582e5ba40e66ec37f2549943e2f1dd4099f4da9d72b37c7646504849?s=48&#038;d=identicon&#038;r=G' srcset='https://1.gravatar.com/avatar/170289e3582e5ba40e66ec37f2549943e2f1dd4099f4da9d72b37c7646504849?s=48&#038;d=identicon&#038;r=G 1x, https://1.gravatar.com/avatar/170289e3582e5ba40e66ec37f2549943e2f1dd4099f4da9d72b37c7646504849?s=72&#038;d=identicon&#038;r=G 1.5x, https://1.gravatar.com/avatar/170289e3582e5ba40e66ec37f2549943e2f1dd4099f4da9d72b37c7646504849?s=96&#038;d=identicon&#038;r=G 2x, https://1.gravatar.com/avatar/170289e3582e5ba40e66ec37f2549943e2f1dd4099f4da9d72b37c7646504849?s=144&#038;d=identicon&#038;r=G 3x, https://1.gravatar.com/avatar/170289e3582e5ba40e66ec37f2549943e2f1dd4099f4da9d72b37c7646504849?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /> <b class="fn">FeRDNYC</b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comment-9767"><time datetime="2025-12-27T19:22:57-08:00">December 27, 2025 at 7:22 pm</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p>I&#8217;d push back some on the characterization of SSL certs as &#8220;dangerous&#8221;. Yes, there are dangers to them, but there are also dangers to operating <em>without</em> them. Just like, if you have locks on your doors, it means there&#8217;s a danger you won&#8217;t be able to get back into your house if you lose your keys. I don&#8217;t think that makes the locks themselves &#8220;dangerous&#8221;.</p>
<p>There&#8217;s plenty that <em>could</em> be done to minimize the dangers of expired certificates, too. If the Bazel registry is so mission-critical, it could use a round-robin of multiple servers, each with a different hostname and a different SSL certificate. That way, if any one host fails (for any reason, not just SSL certificate expiry) users will still be able to access one of the others. The fact that bcr.bazel.build resolves to only a single IP address, and that Bazel exclusively depends uses that hostname for all registry operations, seems like a dangerous single point of failure in plenty of ways that <strong>can&#8217;t</strong> be blamed on SSL, too.</p>
<p>Putting that aside, SSL certificates are a security feature. They can&#8217;t be <em><strong>completely</strong></em> maintenance-free or they stop being effective. Automatic renewal has made the process a lot more seamless most of the time. (Though, there are tradeoffs — in addition to the lack of familiarity among operations staff, as you mentioned, auto-renewed certs typically have short, three-month lifetimes. Bazel got bitten by that, as well.) But when a certificate expires, refusing the request means that the only danger is some lost productivity. That&#8217;s a lot better than alternatives (like falling back to an insecure request) which could leave users open to much greater dangers like man-in-the-middle attacks or malware injection via spoofed package payloads. </p>
<p>When all&#8217;s said and done, I&#8217;ll suffer through some downtime due to an occasional outage, if the alternative is having to worry that everything I download may have been tampered with.</p>
</div><!-- .comment-content -->
<div class="reply"><a rel="nofollow" class="comment-reply-link" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?replytocom=9767#respond" data-commentid="9767" data-postid="7098" data-belowelement="div-comment-9767" data-respondelement="respond" data-replyto="Reply to FeRDNYC" aria-label="Reply to FeRDNYC">Reply</a></div> </article><!-- .comment-body -->
<ol class="children">
<li id="comment-9776" class="comment even depth-2">
<article id="div-comment-9776" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<img referrerpolicy="no-referrer" alt='Joe T.&#039;s avatar' src='https://2.gravatar.com/avatar/820301aa12e19b09e20fc6340522149467f535cd2e115d8d7830b698cbae830e?s=48&#038;d=identicon&#038;r=G' srcset='https://2.gravatar.com/avatar/820301aa12e19b09e20fc6340522149467f535cd2e115d8d7830b698cbae830e?s=48&#038;d=identicon&#038;r=G 1x, https://2.gravatar.com/avatar/820301aa12e19b09e20fc6340522149467f535cd2e115d8d7830b698cbae830e?s=72&#038;d=identicon&#038;r=G 1.5x, https://2.gravatar.com/avatar/820301aa12e19b09e20fc6340522149467f535cd2e115d8d7830b698cbae830e?s=96&#038;d=identicon&#038;r=G 2x, https://2.gravatar.com/avatar/820301aa12e19b09e20fc6340522149467f535cd2e115d8d7830b698cbae830e?s=144&#038;d=identicon&#038;r=G 3x, https://2.gravatar.com/avatar/820301aa12e19b09e20fc6340522149467f535cd2e115d8d7830b698cbae830e?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /> <b class="fn">Joe T.</b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comment-9776"><time datetime="2025-12-28T18:45:45-08:00">December 28, 2025 at 6:45 pm</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p class="wp-block-paragraph">SSL certificates are not necessary &#8212; <em>validated key presentation</em> is necessary. That doesn&#8217;t require a certificate issued by a third party.</p>
</div><!-- .comment-content -->
<div class="reply"><a rel="nofollow" class="comment-reply-link" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?replytocom=9776#respond" data-commentid="9776" data-postid="7098" data-belowelement="div-comment-9776" data-respondelement="respond" data-replyto="Reply to Joe T." aria-label="Reply to Joe T.">Reply</a></div> </article><!-- .comment-body -->
</li><!-- #comment-## -->
</ol><!-- .children -->
</li><!-- #comment-## -->
<li id="comment-9768" class="comment odd alt thread-even depth-1">
<article id="div-comment-9768" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<img referrerpolicy="no-referrer" alt='Verisimilitude&#039;s avatar' src='https://0.gravatar.com/avatar/66f0d74108ca2cbd54d666e720ae16548df39f3c11f8224819af0cc1f77f7ec2?s=48&#038;d=identicon&#038;r=G' srcset='https://0.gravatar.com/avatar/66f0d74108ca2cbd54d666e720ae16548df39f3c11f8224819af0cc1f77f7ec2?s=48&#038;d=identicon&#038;r=G 1x, https://0.gravatar.com/avatar/66f0d74108ca2cbd54d666e720ae16548df39f3c11f8224819af0cc1f77f7ec2?s=72&#038;d=identicon&#038;r=G 1.5x, https://0.gravatar.com/avatar/66f0d74108ca2cbd54d666e720ae16548df39f3c11f8224819af0cc1f77f7ec2?s=96&#038;d=identicon&#038;r=G 2x, https://0.gravatar.com/avatar/66f0d74108ca2cbd54d666e720ae16548df39f3c11f8224819af0cc1f77f7ec2?s=144&#038;d=identicon&#038;r=G 3x, https://0.gravatar.com/avatar/66f0d74108ca2cbd54d666e720ae16548df39f3c11f8224819af0cc1f77f7ec2?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /> <b class="fn"><a href="http://verisimilitudes.net" class="url" rel="ugc external nofollow">Verisimilitude</a></b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comment-9768"><time datetime="2025-12-28T01:22:01-08:00">December 28, 2025 at 1:22 am</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p>I&#8217;ve never been bitten by an expired TLS certificate, because I avoid this racket, so the expression seen on my face would be eye rolling dismissal. I&#8217;ve no clue what Bazel is, but I&#8217;m replying primarily in response to FeRDNYC here.</p>
<p>&gt; Just like, if you have locks on your doors, it means there’s a danger you won’t be able to get back into your house if you lose your keys. I don’t think that makes the locks themselves “dangerous”.</p>
<p>Of course not, but notice that only people with landlords have to ask for permission to install locks, and only people with landlords must worry seriously about their landlord using a skeleton key to open them without permission. The TLS certificate is a key component of a cartel behaviour: The Internet can&#8217;t be centralized, although they&#8217;re certainly trying with the WWW, but merely controlling the disgustingly-complicated WWW browsers is enough to get centralized behaviour. It&#8217;s a simple playbook: Google works really hard to make certain that as few WWW browsers as feasible exist, ideally only Google&#8217;s, and then starts mandating new TLS requirements. Now most of the WWW exists at the behest of a handful of untrustworthy &#8220;certificate authorities&#8221; who will as a group deny certificates to certain websites as soon as they think they&#8217;ll get away with it.</p>
<p>&gt; That’s a lot better than alternatives (like falling back to an insecure request) which could leave users open to much greater dangers like man-in-the-middle attacks or malware injection via spoofed package payloads.</p>
<p>I think it&#8217;s pretty clear that the malware always comes with all of the correct bells and whistles these days.</p>
<p>&gt; When all’s said and done, I’ll suffer through some downtime due to an occasional outage, if the alternative is having to worry that everything I download may have been tampered with.</p>
<p>Oh, we&#8217;ll suffer much more than that, don&#8217;t worry.</p>
</div><!-- .comment-content -->
<div class="reply"><a rel="nofollow" class="comment-reply-link" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?replytocom=9768#respond" data-commentid="9768" data-postid="7098" data-belowelement="div-comment-9768" data-respondelement="respond" data-replyto="Reply to Verisimilitude" aria-label="Reply to Verisimilitude">Reply</a></div> </article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-9769" class="comment even thread-odd thread-alt depth-1">
<article id="div-comment-9769" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<img referrerpolicy="no-referrer" alt='Martin&#039;s avatar' src='https://0.gravatar.com/avatar/c8b625abd4c1704805e251aba20f4ba601635d145b097851b8465f6b59c089eb?s=48&#038;d=identicon&#038;r=G' srcset='https://0.gravatar.com/avatar/c8b625abd4c1704805e251aba20f4ba601635d145b097851b8465f6b59c089eb?s=48&#038;d=identicon&#038;r=G 1x, https://0.gravatar.com/avatar/c8b625abd4c1704805e251aba20f4ba601635d145b097851b8465f6b59c089eb?s=72&#038;d=identicon&#038;r=G 1.5x, https://0.gravatar.com/avatar/c8b625abd4c1704805e251aba20f4ba601635d145b097851b8465f6b59c089eb?s=96&#038;d=identicon&#038;r=G 2x, https://0.gravatar.com/avatar/c8b625abd4c1704805e251aba20f4ba601635d145b097851b8465f6b59c089eb?s=144&#038;d=identicon&#038;r=G 3x, https://0.gravatar.com/avatar/c8b625abd4c1704805e251aba20f4ba601635d145b097851b8465f6b59c089eb?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /> <b class="fn">Martin</b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comment-9769"><time datetime="2025-12-28T01:23:48-08:00">December 28, 2025 at 1:23 am</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p class="wp-block-paragraph">Since at least 2015 with the deprecation of SSL 3.0 the technology is named TLS.<br />So people that still call it SSL are not up to date anymore.</p>
<p>There are documented ways on how to check how many days a certificate will still be valid for every monitoring solution out there (Prometheus, Icinga, Nagios etc.) so there is no reason to be surprised at all. </p>
</div><!-- .comment-content -->
<div class="reply"><a rel="nofollow" class="comment-reply-link" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?replytocom=9769#respond" data-commentid="9769" data-postid="7098" data-belowelement="div-comment-9769" data-respondelement="respond" data-replyto="Reply to Martin" aria-label="Reply to Martin">Reply</a></div> </article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-9770" class="comment odd alt thread-even depth-1">
<article id="div-comment-9770" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<img referrerpolicy="no-referrer" alt='CharityCase&#039;s avatar' src='https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=48&#038;d=identicon&#038;r=G' srcset='https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=48&#038;d=identicon&#038;r=G 1x, https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=72&#038;d=identicon&#038;r=G 1.5x, https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=96&#038;d=identicon&#038;r=G 2x, https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=144&#038;d=identicon&#038;r=G 3x, https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /> <b class="fn">CharityCase</b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comment-9770"><time datetime="2025-12-28T07:35:20-08:00">December 28, 2025 at 7:35 am</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p class="wp-block-paragraph">Your &#8220;response&#8221; to FeRDNYC is comprised of a paranoid conspiracy theory and a general, unhelpful statement about security breaches.</p>
<p class="wp-block-paragraph">In fact, FeRDNYC&#8217; post is a logical and cogent viewpoint that I whole heartedly agree with. </p>
<p class="wp-block-paragraph">As FeRDNYC correctly pointed out, the problem with this article is that its title does not match the issue described in the article itself; SSL certs are not in and of themselves &#8220;dangerous&#8221;. Rather, the use of certain strategies in maintaining them are.</p>
</div><!-- .comment-content -->
<div class="reply"><a rel="nofollow" class="comment-reply-link" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?replytocom=9770#respond" data-commentid="9770" data-postid="7098" data-belowelement="div-comment-9770" data-respondelement="respond" data-replyto="Reply to CharityCase" aria-label="Reply to CharityCase">Reply</a></div> </article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-9771" class="comment even thread-odd thread-alt depth-1">
<article id="div-comment-9771" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<img referrerpolicy="no-referrer" alt='Steve Wilson&#039;s avatar' src='https://1.gravatar.com/avatar/1ec1ed4e5375a185a1594dc019183d2522a62e194b47de393ebfc8fa07a96ca1?s=48&#038;d=identicon&#038;r=G' srcset='https://1.gravatar.com/avatar/1ec1ed4e5375a185a1594dc019183d2522a62e194b47de393ebfc8fa07a96ca1?s=48&#038;d=identicon&#038;r=G 1x, https://1.gravatar.com/avatar/1ec1ed4e5375a185a1594dc019183d2522a62e194b47de393ebfc8fa07a96ca1?s=72&#038;d=identicon&#038;r=G 1.5x, https://1.gravatar.com/avatar/1ec1ed4e5375a185a1594dc019183d2522a62e194b47de393ebfc8fa07a96ca1?s=96&#038;d=identicon&#038;r=G 2x, https://1.gravatar.com/avatar/1ec1ed4e5375a185a1594dc019183d2522a62e194b47de393ebfc8fa07a96ca1?s=144&#038;d=identicon&#038;r=G 3x, https://1.gravatar.com/avatar/1ec1ed4e5375a185a1594dc019183d2522a62e194b47de393ebfc8fa07a96ca1?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /> <b class="fn">Steve Wilson</b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comment-9771"><time datetime="2025-12-28T08:23:37-08:00">December 28, 2025 at 8:23 am</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p class="wp-block-paragraph">Your article is interesting, but I don&#8217;t agree that SSL certs are the problem. The &#8216;problem&#8217; here is automation, which you do touch on.</p>
<p class="wp-block-paragraph">The problem is that as we get more and more automation and things get ever more complicated within our hyper-virtualised environments there are fewer and fewer people that fully understand them and as these engineers build automation, the techs that follow behind them only learn the automation and do not fully understand how things work under the covers!!</p>
</div><!-- .comment-content -->
<div class="reply"><a rel="nofollow" class="comment-reply-link" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?replytocom=9771#respond" data-commentid="9771" data-postid="7098" data-belowelement="div-comment-9771" data-respondelement="respond" data-replyto="Reply to Steve Wilson" aria-label="Reply to Steve Wilson">Reply</a></div> </article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-9772" class="comment odd alt thread-even depth-1">
<article id="div-comment-9772" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<img referrerpolicy="no-referrer" alt='CharityCase&#039;s avatar' src='https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=48&#038;d=identicon&#038;r=G' srcset='https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=48&#038;d=identicon&#038;r=G 1x, https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=72&#038;d=identicon&#038;r=G 1.5x, https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=96&#038;d=identicon&#038;r=G 2x, https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=144&#038;d=identicon&#038;r=G 3x, https://2.gravatar.com/avatar/5ebe897fc4d547b81f866f07ab4db1f0936dfc1772945dcea2fb7a6862ae866d?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /> <b class="fn">CharityCase</b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comment-9772"><time datetime="2025-12-28T09:02:15-08:00">December 28, 2025 at 9:02 am</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p class="wp-block-paragraph">@Martin: perhaps you are unaware, but the use of &#8220;SSL&#8221; is a colloquialism. Everyone even tangentially involved with certificate management understands that TLS superceded SSL a long time ago; it&#8217;s just easier and more familiar to others to call them SSL certs; it&#8217;s not that we are not up-to-date.</p>
</div><!-- .comment-content -->
<div class="reply"><a rel="nofollow" class="comment-reply-link" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?replytocom=9772#respond" data-commentid="9772" data-postid="7098" data-belowelement="div-comment-9772" data-respondelement="respond" data-replyto="Reply to CharityCase" aria-label="Reply to CharityCase">Reply</a></div> </article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-9773" class="pingback even thread-odd thread-alt depth-1">
<div class="comment-body">
Pingback: <a href="https://pl.x321.org/tematy-o-ktorych-teraz-sie-mowi-no365/" class="url" rel="ugc external nofollow">Tematy, o których teraz się mówi No365 - pl.x321.org</a> </div>
</li><!-- #comment-## -->
<li id="comment-9774" class="comment odd alt thread-even depth-1">
<article id="div-comment-9774" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<img referrerpolicy="no-referrer" alt='Andrew Jenkinson&#039;s avatar' src='https://1.gravatar.com/avatar/14cfa674a06441e14a162534308c91094fe2584e78cfa1d539ea9914d9416c8b?s=48&#038;d=identicon&#038;r=G' srcset='https://1.gravatar.com/avatar/14cfa674a06441e14a162534308c91094fe2584e78cfa1d539ea9914d9416c8b?s=48&#038;d=identicon&#038;r=G 1x, https://1.gravatar.com/avatar/14cfa674a06441e14a162534308c91094fe2584e78cfa1d539ea9914d9416c8b?s=72&#038;d=identicon&#038;r=G 1.5x, https://1.gravatar.com/avatar/14cfa674a06441e14a162534308c91094fe2584e78cfa1d539ea9914d9416c8b?s=96&#038;d=identicon&#038;r=G 2x, https://1.gravatar.com/avatar/14cfa674a06441e14a162534308c91094fe2584e78cfa1d539ea9914d9416c8b?s=144&#038;d=identicon&#038;r=G 3x, https://1.gravatar.com/avatar/14cfa674a06441e14a162534308c91094fe2584e78cfa1d539ea9914d9416c8b?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /> <b class="fn">Andrew Jenkinson</b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comment-9774"><time datetime="2025-12-28T12:28:35-08:00">December 28, 2025 at 12:28 pm</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p class="wp-block-paragraph">Very few organisations manage PKI well let alone what certs they have within their network and devices.</p>
<p class="wp-block-paragraph">A laptop typically has a couple of hundred thousand certs and although some will be multi purpose, many are unknown. It is why we have discovered CNNIC certs in a Trident Submarine partner and 999 years full admin access certs in Accenture&#8217;s gold standard laptops.</p>
</div><!-- .comment-content -->
<div class="reply"><a rel="nofollow" class="comment-reply-link" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?replytocom=9774#respond" data-commentid="9774" data-postid="7098" data-belowelement="div-comment-9774" data-respondelement="respond" data-replyto="Reply to Andrew Jenkinson" aria-label="Reply to Andrew Jenkinson">Reply</a></div> </article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-9775" class="comment even thread-odd thread-alt depth-1">
<article id="div-comment-9775" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<img referrerpolicy="no-referrer" alt='Peter Knight&#039;s avatar' src='https://0.gravatar.com/avatar/c19b0dd99fa411334182e110342f26a9844559b288c90d8567f848af9d865d22?s=48&#038;d=identicon&#038;r=G' srcset='https://0.gravatar.com/avatar/c19b0dd99fa411334182e110342f26a9844559b288c90d8567f848af9d865d22?s=48&#038;d=identicon&#038;r=G 1x, https://0.gravatar.com/avatar/c19b0dd99fa411334182e110342f26a9844559b288c90d8567f848af9d865d22?s=72&#038;d=identicon&#038;r=G 1.5x, https://0.gravatar.com/avatar/c19b0dd99fa411334182e110342f26a9844559b288c90d8567f848af9d865d22?s=96&#038;d=identicon&#038;r=G 2x, https://0.gravatar.com/avatar/c19b0dd99fa411334182e110342f26a9844559b288c90d8567f848af9d865d22?s=144&#038;d=identicon&#038;r=G 3x, https://0.gravatar.com/avatar/c19b0dd99fa411334182e110342f26a9844559b288c90d8567f848af9d865d22?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /> <b class="fn"><a href="http://Www.chillssl.com" class="url" rel="ugc external nofollow">Peter Knight</a></b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comment-9775"><time datetime="2025-12-28T13:32:08-08:00">December 28, 2025 at 1:32 pm</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p class="wp-block-paragraph">I spoke with two high tech IT staff recently from the same firm and asked them if they were aware that their SSL cert was about to expire. Both said everything is automated. I knew the SSL cert was going to expire a it did. The issue is that automation encourages a hands off approach. Everyone assumes automation always works but they miss out on the verification layer. If I may plug my app ChillSSL.com which I built to help.</p>
</div><!-- .comment-content -->
<div class="reply"><a rel="nofollow" class="comment-reply-link" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?replytocom=9775#respond" data-commentid="9775" data-postid="7098" data-belowelement="div-comment-9775" data-respondelement="respond" data-replyto="Reply to Peter Knight" aria-label="Reply to Peter Knight">Reply</a></div> </article><!-- .comment-body -->
</li><!-- #comment-## -->
<li id="comment-9778" class="comment odd alt thread-even depth-1">
<article id="div-comment-9778" class="comment-body">
<footer class="comment-meta">
<div class="comment-author vcard">
<img referrerpolicy="no-referrer" alt='Ben Grimm&#039;s avatar' src='https://0.gravatar.com/avatar/01aca394a15e648f730c42856cf684dcf3db6e5ed7703d7d3db1d8c2e4931884?s=48&#038;d=identicon&#038;r=G' srcset='https://0.gravatar.com/avatar/01aca394a15e648f730c42856cf684dcf3db6e5ed7703d7d3db1d8c2e4931884?s=48&#038;d=identicon&#038;r=G 1x, https://0.gravatar.com/avatar/01aca394a15e648f730c42856cf684dcf3db6e5ed7703d7d3db1d8c2e4931884?s=72&#038;d=identicon&#038;r=G 1.5x, https://0.gravatar.com/avatar/01aca394a15e648f730c42856cf684dcf3db6e5ed7703d7d3db1d8c2e4931884?s=96&#038;d=identicon&#038;r=G 2x, https://0.gravatar.com/avatar/01aca394a15e648f730c42856cf684dcf3db6e5ed7703d7d3db1d8c2e4931884?s=144&#038;d=identicon&#038;r=G 3x, https://0.gravatar.com/avatar/01aca394a15e648f730c42856cf684dcf3db6e5ed7703d7d3db1d8c2e4931884?s=192&#038;d=identicon&#038;r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /> <b class="fn">Ben Grimm</b> <span class="says">says:</span> </div><!-- .comment-author -->
<div class="comment-metadata">
<a href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comment-9778"><time datetime="2025-12-29T03:52:03-08:00">December 29, 2025 at 3:52 am</time></a> </div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
<p class="wp-block-paragraph">Which is why you should impending expirations using tools like Zabbix or CheckMK. Simple set warn/crit levels on something like 10/5 days (which is when renewals should have been in place anyway) so there&#8217;s plenty of time to do a manual renewal. SSL certificates aren&#8217;t inherently risky, lack of monitoring is.</p>
</div><!-- .comment-content -->
<div class="reply"><a rel="nofollow" class="comment-reply-link" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/?replytocom=9778#respond" data-commentid="9778" data-postid="7098" data-belowelement="div-comment-9778" data-respondelement="respond" data-replyto="Reply to Ben Grimm" aria-label="Reply to Ben Grimm">Reply</a></div> </article><!-- .comment-body -->
</li><!-- #comment-## -->
</ol><!-- .comment-list -->
<div id="respond" class="comment-respond">
<h3 id="reply-title" class="comment-reply-title">Leave a comment <small><a rel="nofollow" id="cancel-comment-reply-link" href="/2025/12/27/the-dangers-of-ssl-certificates/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://surfingcomplexity.blog/wp-comments-post.php" method="post" id="commentform" class="comment-form">
<div class="comment-form__verbum transparent"></div><div class="verbum-form-meta"><input type='hidden' name='comment_post_ID' value='7098' id='comment_post_ID' />
<input type='hidden' name='comment_parent' id='comment_parent' value='0' />
<input type="hidden" name="highlander_comment_nonce" id="highlander_comment_nonce" value="4affefa77f" />
<input type="hidden" name="verbum_show_subscription_modal" value="" /></div><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="04b6c7a844" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="19"/><script>
document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );
</script>
</p></form> </div><!-- #respond -->
</div><!-- #comments -->
</main><!-- #main -->
</div><!-- #primary -->
<div id="secondary" class="widget-area" role="complementary">
<aside id="block-3" class="widget widget_block widget_search"><form role="search" method="get" action="https://surfingcomplexity.blog/" class="wp-block-search__button-outside wp-block-search__text-button wp-block-search" ><label class="wp-block-search__label" for="wp-block-search__input-1" >Search</label><div class="wp-block-search__inside-wrapper" ><input class="wp-block-search__input" id="wp-block-search__input-1" placeholder="" value="" type="search" name="s" required /><button aria-label="Search" class="wp-block-search__button wp-element-button" type="submit" >Search</button></div></form></aside><aside id="block-7" class="widget widget_block">
<ul class="wp-block-list">
<li><a href="https://lorinhochstein.org">lorinhochstein.org</a></li>
<li><a href="https://bsky.app/profile/norootcause.surfingcomplexity.com">Bluesky</a></li>
<li><a href="https://hachyderm.io/@norootcause">Mastodon</a></li>
</ul>
</aside><aside id="block-4" class="widget widget_block widget_recent_entries"><ul class="wp-block-latest-posts__list wp-block-latest-posts is-layout-flow wp-block-latest-posts-is-layout-flow"><li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/09/01/thoughts-on-the-buildkite-aug-25-incident/">Thoughts on the Buildkite Aug 25&nbsp;incident</a></li>
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/08/29/quick-thoughts-on-github-actions-aug-26-incident/">Quick thoughts on GitHub Actions Aug 26&nbsp;incident</a></li>
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/08/29/omnipresent-availability-risks-in-cloud-software/">Omnipresent availability risks in cloud&nbsp;software</a></li>
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/08/22/wild-ai-related-reliability-incidents-are-coming/">Wild AI-related reliability incidents are&nbsp;coming</a></li>
<li><a class="wp-block-latest-posts__post-title" href="https://surfingcomplexity.blog/2026/08/19/github-autoscaling-and-the-component-substitution-fallacy/">GitHub, autoscaling, and the component substitution&nbsp;fallacy</a></li>
</ul></aside></div><!-- #secondary -->
</div><!-- #content -->
<footer id="colophon" class="site-footer" role="contentinfo">
<div class="site-info">
<a href="https://wordpress.com/?ref=footer_blog" rel="nofollow">Blog at WordPress.com.</a>
</div><!-- .site-info -->
</footer><!-- #colophon -->
</div><!-- #content-wrapper -->
</div><!-- #page -->
<!-- -->
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/files/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/pub/independent-publisher-2/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script id="grofiles-cards-js" src="//0.gravatar.com/js/hovercards/hovercards.min.js?ver=202637d1133547e8a1f2801609f51cef12522abe7f6647d869e9fbc974fe356a37e613"></script>
<script id="wpgroho-js-extra">
var WPGroHo = {"my_hash":""};
//# sourceURL=wpgroho-js-extra
</script>
<script crossorigin='anonymous' type='text/javascript' src='/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1610363240i'></script>
<script>
// Initialize and attach hovercards to all gravatars
( function() {
function init() {
if ( typeof Gravatar === 'undefined' ) {
return;
}
if ( typeof Gravatar.init !== 'function' ) {
return;
}
Gravatar.profile_cb = function ( hash, id ) {
WPGroHo.syncProfileData( hash, id );
};
Gravatar.my_hash = WPGroHo.my_hash;
Gravatar.init(
'body',
'#wp-admin-bar-my-account',
{
i18n: {
'Edit your profile →': 'Edit your profile →',
'View profile →': 'View profile →',
'Contact': 'Contact',
'Send money': 'Send money',
'Sorry, we are unable to load this Gravatar profile.': 'Sorry, we are unable to load this Gravatar profile.',
'Gravatar not found.': 'Gravatar not found.',
'Too Many Requests.': 'Too Many Requests.',
'Internal Server Error.': 'Internal Server Error.',
'Is this you?': 'Is this you?',
'Claim your free profile.': 'Claim your free profile.',
'Email': 'Email',
'Home Phone': 'Home Phone',
'Work Phone': 'Work Phone',
'Cell Phone': 'Cell Phone',
'Contact Form': 'Contact Form',
'Calendar': 'Calendar',
},
}
);
}
if ( document.readyState !== 'loading' ) {
init();
} else {
document.addEventListener( 'DOMContentLoaded', init );
}
} )();
</script>
<div style="display:none">
<div class="grofile-hash-map-c690634d340d85fb40ac03668259ff1c">
</div>
<div class="grofile-hash-map-274c1c9769548fe8a8266041d0f65ecc">
</div>
<div class="grofile-hash-map-0a1d7aeb5a21edb0fcce12df464ff13b">
</div>
<div class="grofile-hash-map-b56ffb7edf3afe0e09dfb3fcd4287f45">
</div>
<div class="grofile-hash-map-5381d81033918d8b4f3566df276d5dfa">
</div>
<div class="grofile-hash-map-c9dfd39469d3c17fd5aa3d931cbdb9fb">
</div>
<div class="grofile-hash-map-7d51e3fe883b7362ad2649aa4c203a39">
</div>
<div class="grofile-hash-map-41dcd955aa4541746f0664f8f3127bf1">
</div>
<div class="grofile-hash-map-2e9e259ea251889656ca51825503c1a5">
</div>
<div class="grofile-hash-map-ca389c1fee1e58883d3d2622e44f007a">
</div>
<div class="grofile-hash-map-e1ad3839e6caa7799ef8d07e019e8dda">
</div>
</div>
<div id="actionbar" dir="ltr" style="display: none;"
class="actnbr-pub-independent-publisher-2 actnbr-has-follow actnbr-has-actions">
<ul>
<li class="actnbr-btn actnbr-hidden">
<a class="actnbr-action actnbr-actn-comment" href="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/#comments">
<svg class="gridicon gridicons-comment" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M12 16l-5 5v-5H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v9c0 1.1-.9 2-2 2h-7z"/></g></svg> <span>Comment </span>
</a>
</li>
<li class="actnbr-btn actnbr-hidden">
<a class="actnbr-action actnbr-actn-reblog" href="">
<svg class="gridicon gridicons-reblog" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M22.086 9.914L20 7.828V18c0 1.105-.895 2-2 2h-7v-2h7V7.828l-2.086 2.086L14.5 8.5 19 4l4.5 4.5-1.414 1.414zM6 16.172V6h7V4H6c-1.105 0-2 .895-2 2v10.172l-2.086-2.086L.5 15.5 5 20l4.5-4.5-1.414-1.414L6 16.172z"/></g></svg><span>Reblog</span>
</a>
</li>
<li class="actnbr-btn actnbr-hidden">
<a class="actnbr-action actnbr-actn-follow " href="">
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg>
<span>Subscribe</span>
</a>
<a class="actnbr-action actnbr-actn-following no-display" href="">
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V3H17.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H14.5V13.5H10.5V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path d="M19.5303 15.0303L15.5 19.0605L12.9697 16.5303L14.0303 15.4697L15.5 16.9395L18.4697 13.9697L19.5303 15.0303Z" fill="#008A20"></path></svg>
<span>Subscribed</span>
</a>
<div class="actnbr-popover tip tip-top-left actnbr-notice" id="follow-bubble">
<div class="tip-arrow"></div>
<div class="tip-inner actnbr-follow-bubble">
<ul>
<li class="actnbr-sitename">
<a href="https://surfingcomplexity.blog">
<img loading='lazy' alt='' src='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50' srcset='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50 1x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=75 1.5x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=100 2x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 3x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 4x' class='avatar avatar-50' height='50' width='50' /> Surfing Complexity </a>
</li>
<div class="actnbr-message no-display"></div>
<form method="post" action="https://subscribe.wordpress.com" accept-charset="utf-8" style="display: none;">
<div class="actnbr-follow-count">Join 263 other subscribers</div>
<div>
<input type="email" name="email" placeholder="Enter your email address" class="actnbr-email-field" aria-label="Enter your email address" />
</div>
<input type="hidden" name="action" value="subscribe" />
<input type="hidden" name="blog_id" value="30291541" />
<input type="hidden" name="source" value="https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/" />
<input type="hidden" name="sub-type" value="actionbar-follow" />
<input type="hidden" id="_wpnonce" name="_wpnonce" value="0db45c92b7" /> <div class="actnbr-button-wrap">
<button type="submit" value="Sign me up">
Sign me up </button>
</div>
</form>
<li class="actnbr-login-nudge">
<div>
Already have a WordPress.com account? <a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fsurfingcomplexity.blog%252F2025%252F12%252F27%252Fthe-dangers-of-ssl-certificates%252F">Log in now.</a> </div>
</li>
</ul>
</div>
</div>
</li>
<li class="actnbr-ellipsis actnbr-hidden">
<svg class="gridicon gridicons-ellipsis" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M7 12c0 1.104-.896 2-2 2s-2-.896-2-2 .896-2 2-2 2 .896 2 2zm12-2c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2zm-7 0c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2z"/></g></svg> <div class="actnbr-popover tip tip-top-left actnbr-more">
<div class="tip-arrow"></div>
<div class="tip-inner">
<ul>
<li class="actnbr-sitename">
<a href="https://surfingcomplexity.blog">
<img loading='lazy' alt='' src='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50' srcset='https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=50 1x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=75 1.5x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=100 2x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 3x, https://surfingcomplexity.blog/wp-content/uploads/2020/05/surfer_1f3c4.png?w=120 4x' class='avatar avatar-50' height='50' width='50' /> Surfing Complexity </a>
</li>
<li class="actnbr-folded-follow">
<a class="actnbr-action actnbr-actn-follow " href="">
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg>
<span>Subscribe</span>
</a>
<a class="actnbr-action actnbr-actn-following no-display" href="">
<svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V3H17.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H14.5V13.5H10.5V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path d="M19.5303 15.0303L15.5 19.0605L12.9697 16.5303L14.0303 15.4697L15.5 16.9395L18.4697 13.9697L19.5303 15.0303Z" fill="#008A20"></path></svg>
<span>Subscribed</span>
</a>
</li>
<li class="actnbr-signup"><a href="https://wordpress.com/start/">Sign up</a></li>
<li class="actnbr-login"><a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fsurfingcomplexity.blog%252F2025%252F12%252F27%252Fthe-dangers-of-ssl-certificates%252F">Log in</a></li>
<li class="actnbr-shortlink">
<a href="https://wp.me/p236df-1Qu">
<span class="actnbr-shortlink__text">Copy shortlink</span>
<span class="actnbr-shortlink__icon"><svg class="gridicon gridicons-checkmark" height="16" width="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414"/></g></svg></span>
</a>
</li>
<li class="flb-report">
<a href="https://wordpress.com/abuse/?report_url=https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/" target="_blank" rel="noopener noreferrer">
Report this content </a>
</li>
<li class="actnbr-reader">
<a href="https://wordpress.com/reader/blogs/30291541/posts/7098">
View post in Reader </a>
</li>
<li class="actnbr-subs">
<a href="https://subscribe.wordpress.com/">Manage subscriptions</a>
</li>
<li class="actnbr-fold"><a href="">Collapse this bar</a></li>
</ul>
</div>
</div>
</li>
</ul>
</div>
<script>
window.addEventListener( "DOMContentLoaded", function( event ) {
var link = document.createElement( "link" );
link.href = "/wp-content/mu-plugins/actionbar/actionbar.css?v=20250116";
link.type = "text/css";
link.rel = "stylesheet";
document.head.appendChild( link );
var script = document.createElement( "script" );
script.src = "/wp-content/mu-plugins/actionbar/actionbar.js?v=20250204";
document.body.appendChild( script );
} );
</script>
<div id="jp-carousel-loading-overlay" style="display: none;">
<div id="jp-carousel-loading-wrapper">
<span id="jp-carousel-library-loading"><svg class="jetpack-spinner" width="40" height="40" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><circle cx="50" cy="50" r="46" fill="none" stroke="#ddd" stroke-width="8"/><path d="M 50 4 A 46 46 0 0 1 96 50" fill="none" stroke="currentColor" stroke-width="8" stroke-linecap="round"><animateTransform attributeName="transform" type="rotate" dur="1.4s" from="0 50 50" to="360 50 50" repeatCount="indefinite"/></path></svg></span>
</div>
</div>
<div class="jp-carousel-overlay" style="display: none;">
<div class="jp-carousel-container">
<!-- The Carousel Swiper -->
<div
class="jp-carousel-wrap swiper jp-carousel-swiper-container jp-carousel-transitions"
itemscope
itemtype="https://schema.org/ImageGallery">
<div class="jp-carousel swiper-wrapper"></div>
<div class="jp-swiper-button-prev swiper-button-prev">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="maskPrev" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="9" height="12">
<path d="M16.2072 16.59L11.6496 12L16.2072 7.41L14.8041 6L8.8335 12L14.8041 18L16.2072 16.59Z" fill="white"/>
</mask>
<g mask="url(#maskPrev)">
<rect x="0.579102" width="23.8823" height="24" fill="#FFFFFF"/>
</g>
</svg>
</div>
<div class="jp-swiper-button-next swiper-button-next">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="maskNext" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="8" height="12">
<path d="M8.59814 16.59L13.1557 12L8.59814 7.41L10.0012 6L15.9718 12L10.0012 18L8.59814 16.59Z" fill="white"/>
</mask>
<g mask="url(#maskNext)">
<rect x="0.34375" width="23.8822" height="24" fill="#FFFFFF"/>
</g>
</svg>
</div>
</div>
<!-- The main close buton -->
<div class="jp-carousel-close-hint">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="maskClose" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="5" width="15" height="14">
<path d="M19.3166 6.41L17.9135 5L12.3509 10.59L6.78834 5L5.38525 6.41L10.9478 12L5.38525 17.59L6.78834 19L12.3509 13.41L17.9135 19L19.3166 17.59L13.754 12L19.3166 6.41Z" fill="white"/>
</mask>
<g mask="url(#maskClose)">
<rect x="0.409668" width="23.8823" height="24" fill="#FFFFFF"/>
</g>
</svg>
</div>
<!-- Image info, comments and meta -->
<div class="jp-carousel-info">
<div class="jp-carousel-info-footer">
<div class="jp-carousel-pagination-container">
<div class="jp-swiper-pagination swiper-pagination"></div>
<div class="jp-carousel-pagination"></div>
</div>
<div class="jp-carousel-photo-title-container">
<div class="jp-carousel-photo-caption"></div>
</div>
<div class="jp-carousel-photo-icons-container">
<a href="#" class="jp-carousel-icon-btn jp-carousel-icon-info" aria-label="Toggle photo metadata visibility">
<span class="jp-carousel-icon">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="maskInfo" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.7537 2C7.26076 2 2.80273 6.48 2.80273 12C2.80273 17.52 7.26076 22 12.7537 22C18.2466 22 22.7046 17.52 22.7046 12C22.7046 6.48 18.2466 2 12.7537 2ZM11.7586 7V9H13.7488V7H11.7586ZM11.7586 11V17H13.7488V11H11.7586ZM4.79292 12C4.79292 16.41 8.36531 20 12.7537 20C17.142 20 20.7144 16.41 20.7144 12C20.7144 7.59 17.142 4 12.7537 4C8.36531 4 4.79292 7.59 4.79292 12Z" fill="white"/>
</mask>
<g mask="url(#maskInfo)">
<rect x="0.8125" width="23.8823" height="24" fill="#FFFFFF"/>
</g>
</svg>
</span>
</a>
<a href="#" class="jp-carousel-icon-btn jp-carousel-icon-comments" aria-label="Toggle photo comments visibility">
<span class="jp-carousel-icon">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="maskComments" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.3271 2H20.2486C21.3432 2 22.2388 2.9 22.2388 4V16C22.2388 17.1 21.3432 18 20.2486 18H6.31729L2.33691 22V4C2.33691 2.9 3.2325 2 4.3271 2ZM6.31729 16H20.2486V4H4.3271V18L6.31729 16Z" fill="white"/>
</mask>
<g mask="url(#maskComments)">
<rect x="0.34668" width="23.8823" height="24" fill="#FFFFFF"/>
</g>
</svg>
<span class="jp-carousel-has-comments-indicator" aria-label="This image has comments."></span>
</span>
</a>
</div>
</div>
<div class="jp-carousel-info-extra">
<div class="jp-carousel-info-content-wrapper">
<div class="jp-carousel-photo-title-container">
<div class="jp-carousel-photo-title"></div>
</div>
<div class="jp-carousel-comments-wrapper">
<div id="jp-carousel-comments-loading">
<span>Loading Comments...</span>
</div>
<div class="jp-carousel-comments"></div>
<div id="jp-carousel-comment-form-container">
<span id="jp-carousel-comment-form-spinner"><svg class="jetpack-spinner" width="20" height="20" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><circle cx="50" cy="50" r="46" fill="none" stroke="#ddd" stroke-width="8"/><path d="M 50 4 A 46 46 0 0 1 96 50" fill="none" stroke="currentColor" stroke-width="8" stroke-linecap="round"><animateTransform attributeName="transform" type="rotate" dur="1.4s" from="0 50 50" to="360 50 50" repeatCount="indefinite"/></path></svg></span>
<div id="jp-carousel-comment-post-results"></div>
<form id="jp-carousel-comment-form">
<label for="jp-carousel-comment-form-comment-field" class="screen-reader-text">Write a Comment...</label>
<textarea
name="comment"
class="jp-carousel-comment-form-field jp-carousel-comment-form-textarea"
id="jp-carousel-comment-form-comment-field"
placeholder="Write a Comment..."
></textarea>
<div id="jp-carousel-comment-form-submit-and-info-wrapper">
<div id="jp-carousel-comment-form-commenting-as">
<fieldset>
<label for="jp-carousel-comment-form-email-field">Email (Required)</label>
<input type="text" name="email" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-email-field" />
</fieldset>
<fieldset>
<label for="jp-carousel-comment-form-author-field">Name (Required)</label>
<input type="text" name="author" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-author-field" />
</fieldset>
<fieldset>
<label for="jp-carousel-comment-form-url-field">Website</label>
<input type="text" name="url" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-url-field" />
</fieldset>
</div>
<input
type="submit"
name="submit"
class="jp-carousel-comment-form-button"
id="jp-carousel-comment-form-button-submit"
value="Post Comment" />
</div>
</form>
</div>
</div>
<div class="jp-carousel-image-meta">
<div class="jp-carousel-title-and-caption">
<div class="jp-carousel-photo-info">
<div class="jp-carousel-caption" itemprop="caption description"></div>
</div>
<div class="jp-carousel-photo-description"></div>
</div>
<a class="jp-carousel-image-download" href="#" aria-label="Download image" target="_blank" style="display: none;">
<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="19" height="18">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.84615 5V19H19.7775V12H21.7677V19C21.7677 20.1 20.8721 21 19.7775 21H5.84615C4.74159 21 3.85596 20.1 3.85596 19V5C3.85596 3.9 4.74159 3 5.84615 3H12.8118V5H5.84615ZM14.802 5V3H21.7677V10H19.7775V6.41L9.99569 16.24L8.59261 14.83L18.3744 5H14.802Z" fill="white"/>
</mask>
<g mask="url(#mask0)">
<rect x="0.870605" width="23.8823" height="24" fill="#FFFFFF"/>
</g>
</svg>
<span class="jp-carousel-download-text"></span>
</a>
<div class="jp-carousel-image-map" style="display: none;"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
window.WPCOM_sharing_counts = {"https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/":7098};
</script>
<script crossorigin='anonymous' type='text/javascript' src='/_static/??-eJzTLy/QTc7PK0nNK9EvyClNz8wr1i+uzCtJrMjITM/IAeKS1CJMEWP94uSizIISoOIM5/yiVL2sYh19yo1yKiotzgjISczMAxpon2traGpuYGRgYmlhmgUAFLxAeg=='></script>
<script type='text/javascript'>
(function(){
var corecss = document.createElement('link');
var themecss = document.createElement('link');
var corecssurl = "/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css?ver=3.0.9b";
if ( corecss.setAttribute ) {
corecss.setAttribute( "rel", "stylesheet" );
corecss.setAttribute( "type", "text/css" );
corecss.setAttribute( "href", corecssurl );
} else {
corecss.rel = "stylesheet";
corecss.href = corecssurl;
}
document.head.appendChild( corecss );
var themecssurl = "/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeDefault.css?m=1363304414i&amp;ver=3.0.9b";
if ( themecss.setAttribute ) {
themecss.setAttribute( "rel", "stylesheet" );
themecss.setAttribute( "type", "text/css" );
themecss.setAttribute( "href", themecssurl );
} else {
themecss.rel = "stylesheet";
themecss.href = themecssurl;
}
document.head.appendChild( themecss );
})();
SyntaxHighlighter.config.strings.expandSource = '+ expand source';
SyntaxHighlighter.config.strings.help = '?';
SyntaxHighlighter.config.strings.alert = 'SyntaxHighlighter\n\n';
SyntaxHighlighter.config.strings.noBrush = 'Can\'t find brush for: ';
SyntaxHighlighter.config.strings.brushNotHtmlScript = 'Brush wasn\'t configured for html-script option: ';
SyntaxHighlighter.defaults['pad-line-numbers'] = false;
SyntaxHighlighter.defaults['toolbar'] = false;
SyntaxHighlighter.all();
// Infinite scroll support
document.addEventListener( 'is.post-load', function () {
SyntaxHighlighter.highlight();
} );
</script>
<script type="text/javascript">
(function () {
var wpcom_reblog = {
source: 'toolbar',
toggle_reblog_box_flair: function (obj_id, post_id) {
// Go to site selector. This will redirect to their blog if they only have one.
const postEndpoint = `https://wordpress.com/post`;
// Ideally we would use the permalink here, but fortunately this will be replaced with the
// post permalink in the editor.
const originalURL = `${ document.location.href }?page_id=${ post_id }`;
const url =
postEndpoint +
'?url=' +
encodeURIComponent( originalURL ) +
'&is_post_share=true' +
'&v=5';
const redirect = function () {
if (
! window.open( url, '_blank' )
) {
location.href = url;
}
};
if ( /Firefox/.test( navigator.userAgent ) ) {
setTimeout( redirect, 0 );
} else {
redirect();
}
},
};
window.wpcom_reblog = wpcom_reblog;
})();
</script>
<script crossorigin='anonymous' type='text/javascript' src='/wp-content/mu-plugins/likes/queuehandler.js?m=1741961244i'></script>
<script id="wp-hooks-js" src="/wp-content/plugins/gutenberg-core/v23.9.1/build/scripts/hooks/index.min.js?m=1788785546i&#038;ver=f0f188028580e8dc1255"></script>
<script id="wp-i18n-js" src="/wp-content/plugins/gutenberg-core/v23.9.1/build/scripts/i18n/index.min.js?m=1788785546i&#038;ver=1dfe7db3940c23ea9216"></script>
<script id="wp-i18n-js-after">
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
</script>
<script id="verbum-settings-js-before">
window.VerbumComments = {"Log in or provide your name and email to leave a reply.":"Log in or provide your name and email to leave a reply.","Log in or provide your name and email to leave a comment.":"Log in or provide your name and email to leave a comment.","Receive web and mobile notifications for posts on this site.":"Receive web and mobile notifications for posts on this site.","Name":"Name","Email (address never made public)":"Email (address never made public)","Website (optional)":"Website (optional)","Leave a reply. (log in optional)":"Leave a reply. (log in optional)","Leave a comment. (log in optional)":"Leave a comment. (log in optional)","Log in to leave a reply.":"Log in to leave a reply.","Log in to leave a comment.":"Log in to leave a comment.","Logged in via %s":"Logged in via %s","Log out":"Log out","Your browser is blocking the cookies needed to log in and comment here. Allow cookies in your privacy settings, then reload the page.":"Your browser is blocking the cookies needed to log in and comment here. Allow cookies in your privacy settings, then reload the page.","Email":"Email","(Address never made public)":"(Address never made public)","Instantly":"Instantly","Daily":"Daily","Reply":"Reply","Comment":"Comment","WordPress":"WordPress","Weekly":"Weekly","Notify me of new posts":"Notify me of new posts","Email me new posts":"Email me new posts","Email me new comments":"Email me new comments","Cancel":"Cancel","Write a comment...":"Write a comment...","Write a reply...":"Write a reply...","Website":"Website","Optional":"Optional","We'll keep you in the loop!":"We'll keep you in the loop!","Loading your comment...":"Loading your comment...","Discover more from":"Discover more from Surfing Complexity","Subscribe now to keep reading and get access to the full archive.":"Subscribe now to keep reading and get access to the full archive.","Continue reading":"Continue reading","Never miss a beat!":"Never miss a beat!","Interested in getting blog post updates? Simply click the button below to stay in the loop!":"Interested in getting blog post updates? Simply click the button below to stay in the loop!","Enter your email address":"Enter your email address","Subscribe":"Subscribe","Comment sent successfully":"Comment sent successfully","Save my name, email, and website in this browser for the next time I comment.":"Save my name, email, and website in this browser for the next time I comment.","hovercardi18n":{"Edit your profile \u2192":"Edit your profile \u2192","View profile \u2192":"View profile \u2192","Contact":"Contact","Send money":"Send money","Gravatar not found.":"Gravatar not found.","This profile is private.":"This profile is private.","Too Many Requests.":"Too Many Requests.","Internal Server Error.":"Internal Server Error.","Sorry, we are unable to load this Gravatar profile.":"Sorry, we are unable to load this Gravatar profile."},"siteId":30291541,"postId":7098,"mustLogIn":false,"requireNameEmail":true,"commentRegistration":false,"connectURL":"https://lorinhochstein.wordpress.com/public.api/connect/?action=request\u0026domain=surfingcomplexity.blog","logoutURL":"https://lorinhochstein.wordpress.com/wp-login.php?action=logout\u0026_wpnonce=b263a00deb","homeURL":"https://surfingcomplexity.blog/","subscribeToBlog":true,"subscribeToComment":true,"isJetpackCommentsLoggedIn":false,"jetpackUsername":"","jetpackUserId":0,"jetpackSignature":"","jetpackAvatar":"https://0.gravatar.com/avatar/?s=96\u0026amp;d=identicon\u0026amp;r=G","enableBlocks":true,"enableSubscriptionModal":true,"currentLocale":"en","isJetpackComments":false,"allowedBlocks":["core/paragraph","core/list","core/code","core/list-item","core/quote","core/image","core/embed","core/quote","core/code"],"embedNonce":"2db44e3fcc","verbumBundleUrl":"/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/features/verbum-comments/dist/index.js","isRTL":false,"vbeCacheBuster":1771405207,"iframeUniqueId":0,"colorScheme":false}
//# sourceURL=verbum-settings-js-before
</script>
<script data-wp-strategy="defer" defer id="verbum-dynamic-loader-js" src="/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/verbum-comments/assets/dynamic-loader.js?m=1772518873i&#038;minify=false&#038;ver=8b5296f9195db92c42e4"></script>
<script id="coblocks-loader-js-extra">
var wpcom_coblocks_js = {"coblocks_masonry_js":"https://s2.wp.com/wp-content/plugins/coblocks/2.18.1-simple-rev.4/dist/js/coblocks-masonry.min.js?m=1681832297i","coblocks_lightbox_js":"https://s2.wp.com/wp-content/plugins/coblocks/2.18.1-simple-rev.4/dist/js/coblocks-lightbox.min.js?m=1681832297i","jquery_core_js":"/wp-includes/js/jquery/jquery.min.js","jquery_migrate_js":"/wp-includes/js/jquery/jquery-migrate.min.js","masonry_js":"/wp-includes/js/masonry.min.js","imagesloaded_js":"/wp-includes/js/imagesloaded.min.js"};
var coblocksLigthboxData = {"closeLabel":"Close Gallery","leftLabel":"Previous","rightLabel":"Next"};
//# sourceURL=coblocks-loader-js-extra
</script>
<script id="jetpack-carousel-js-extra">
var jetpackSwiperLibraryPath = {"url":"/wp-content/mu-plugins/jetpack-plugin/moon/_inc/blocks/swiper.js"};
var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"https://surfingcomplexity.blog/wp-admin/admin-ajax.php","nonce":"fd1855488a","display_exif":"1","display_comments":"1","single_image_gallery":"1","single_image_gallery_media_file":"","background_color":"black","comment":"Comment","post_comment":"Post Comment","write_comment":"Write a Comment...","loading_comments":"Loading Comments...","image_label":"Open image in full-screen.","download_original":"View full size \u003Cspan class=\"photo-size\"\u003E{0}\u003Cspan class=\"photo-size-times\"\u003E\u00d7\u003C/span\u003E{1}\u003C/span\u003E","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","copyright":"Copyright","comment_registration":"0","require_name_email":"1","login_url":"https://lorinhochstein.wordpress.com/wp-login.php?redirect_to=https%3A%2F%2Fsurfingcomplexity.blog%2F2025%2F12%2F27%2Fthe-dangers-of-ssl-certificates%2F","blog_id":"30291541","meta_data":["camera","aperture","shutter_speed","focal_length","copyright"],"stats_query_args":"blog=30291541&v=wpcom&tz=-7&user_id=0&subd=lorinhochstein","is_public":"1"};
//# sourceURL=jetpack-carousel-js-extra
</script>
<script id="sharing-js-js-extra">
var sharing_js_options = {"lang":"en","counts":"1","is_stats_active":"1"};
//# sourceURL=sharing-js-js-extra
</script>
<script id="jetpack-script-data-js-before">
window.JetpackScriptData = {"site":{"host":"wpcom","is_wpcom_platform":true}};
//# sourceURL=jetpack-script-data-js-before
</script>
<script crossorigin='anonymous' type='text/javascript' src='/_static/??-eJydkN1uwjAMhV9oaYBtwC4mHgWZxIDb/Cl2YLz90kJZhaZp4iaKj+3v2NbnpEwMgkF0cuVAgbWJOxdNx3rRzNfNXDH55FBlPDVv2hKLbn+KlItgMTeeQtPyi57w5IgeWaey0xQsJqxPEFVjR3zErBY9KMCJDiAUn+znjpJyFDq1j6aw2tPXCKJgXLEVMczrfd+dMbnLk9NWnmaTKYk6pwp8RPiixhu2KAlMp6o0lN4S2scYxuT2VD1i1lAkehAhc28DZhTWu0LO3sWbtQWBfzhPDbf95FeYgRwLo7vXjcJvN5lgoSP2KOq1mV1xo7DPQ7H9o3e0uJ7iIXx+FT5CRgvWXoYvhcNth43/nK/Wq4/32Xq5bL8B61oT8g=='></script>
<script id="sharing-js-js-after">
window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {};
window.WPCOM_sharing_popups[ "twitter" ] = "menubar=1,resizable=1,width=600,height=350";
window.WPCOM_sharing_popups = window.WPCOM_sharing_popups || {};
window.WPCOM_sharing_popups[ "facebook" ] = "menubar=1,resizable=1,width=600,height=400";
//# sourceURL=sharing-js-js-after
</script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/","ext":".png","svgUrl":"https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/svg/","svgExt":".svg","source":{"concatemoji":"/wp-includes/js/wp-emoji-release.min.js?m=1783090810i&ver=7.1.1-alpha-63555"}}
</script>
<script type="module">
/*! This file is auto-generated */
var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
//# sourceURL=/wp-includes/js/wp-emoji-loader.min.js
</script>
<iframe src='https://widgets.wp.com/likes/master.html?ver=20260912#ver=20260912' scrolling='no' id='likes-master' name='likes-master' style='display:none;'></iframe>
<div id='likes-other-gravatars' role="dialog" aria-hidden="true" tabindex="-1"><div class="likes-text"><span>%d</span></div><ul class="wpl-avatars sd-like-gravatars"></ul></div>
<script src="//stats.wp.com/w.js?69" defer></script> <script type="text/javascript">
_tkq = window._tkq || [];
_stq = window._stq || [];
_tkq.push(['storeContext', {'blog_id':'30291541','blog_tz':'-7','user_lang':'en','blog_lang':'en','user_id':'0'}]);
// Prevent sending pageview tracking from WP-Admin pages.
_stq.push(['view', {'blog':'30291541','v':'wpcom','tz':'-7','user_id':'0','post':'7098','subd':'lorinhochstein'}]);
_stq.push(['extra', {'crypt':'UE5tW3cvZGRTd1VXTHx0Q0pyYT89K3QrZXh+YlZCT3lNLEN2NzQ2Njh8QTJiL1BzZVh+MTlwZTc3TkdTOFRnU0szQW1JRDNWXXZWanJ3XTl4fDgsSzh0W3xub1UwRH5RYko0Rj9pUndUcWNreTNTMjFDJlhJRmtVdl84RzRHK21ZJkUrNVpRUjA2K0pDUFEzSzIzMiwmQXd+d3oyTi9iRCZudVZkb2RUdj1tWVhaZHd8fFpyLmw/PWpreHBOTnQ9ZnNQTEpWLDZHRnVSUzVHZG5raWwwdA=='}]);
_stq.push([ 'clickTrackerInit', '30291541', '7098' ]);
</script>
<noscript><img src="https://pixel.wp.com/b.gif?v=noscript" style="height:1px;width:1px;overflow:hidden;position:absolute;bottom:1px;" alt="" /></noscript>
<meta id="bilmur" property="bilmur:data" content="" data-provider="wordpress.com" data-service="simple" data-site-tz="America/Los_Angeles" data-custom-props="{&quot;logged_in&quot;:&quot;0&quot;,&quot;wptheme&quot;:&quot;pub\/independent-publisher-2&quot;,&quot;wptheme_is_block&quot;:&quot;0&quot;}" >
<script defer src="/wp-content/js/bilmur.min.js?i=17&amp;m=202637"></script>
<script>
(function() {
'use strict';
const fetches = {};
const promises = {};
const urls = {
'wp-polyfill': '/wp-includes/js/dist/vendor/wp-polyfill.min.js?m=1786440387i&ver=3.15.0',
'verbum': '/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/moon/jetpack_vendor/automattic/jetpack-mu-wpcom/src/build/verbum-comments/verbum-comments.js?m=1788898305i&minify=false&ver=3d6130a57c3104d5bc3b'
};
const loaders = {
'verbum': () => {
fetchExternalScript('wp-polyfill');
fetchExternalScript('verbum');
promises['wp-polyfill'] = promises['wp-polyfill'] || loadWPScript('wp-polyfill');
promises['verbum'] = promises['verbum'] || promises['wp-polyfill'].then( () => loadWPScript('verbum') );
return promises['verbum'];
},
};
const scriptExtras = {
};
window.WP_Enqueue_Dynamic_Script = {
loadScript: (handle) => {
if (!loaders[handle]) {
console.error('WP_Enqueue_Dynamic_Script: unregistered script `' + handle + '`.');
}
return loaders[handle]();
}
};
function fetchExternalScript(handle) {
if (!urls[handle]) {
return Promise.resolve();
}
fetches[handle] = fetches[handle] || fetch(urls[handle], { mode: 'no-cors' });
return fetches[handle];
}
function runExtraScript(handle, type, index) {
const id = 'wp-enqueue-dynamic-script:' + handle + ':' + type + ':' + (index + 1);
const template = document.getElementById(id);
if (!template) {
return Promise.reject();
}
const script = document.createElement( 'script' );
script.innerHTML = template.innerHTML;
document.body.appendChild( script );
return Promise.resolve();
}
function loadExternalScript(handle) {
if (!urls[handle]) {
return Promise.resolve();
}
return fetches[handle].then(() => {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.onload = () => resolve();
script.onerror = (e) => reject(e);
script.src = urls[handle];
document.body.appendChild(script);
});
});
}
function loadExtra(handle, pos) {
const count = (scriptExtras[handle] && scriptExtras[handle][pos]) || 0;
let promise = Promise.resolve();
for (let i = 0; i < count; i++) {
promise = promise.then(() => runExtraScript(handle, pos, i));
}
return promise;
}
function loadWPScript(handle) {
// Core loads scripts in this order. See: https://github.com/WordPress/WordPress/blob/a59eb9d39c4fcba834b70c9e8dfd64feeec10ba6/wp-includes/class-wp-scripts.php#L428.
return loadExtra(handle, 'translations')
.then(() => loadExtra(handle, 'before'))
.then(() => loadExternalScript(handle))
.then(() => loadExtra(handle, 'after'));
}
} )();
</script>
</body>
</html>