The Problem: You open up the Windows event viewer and see loads of Red SChannel 36887 errors. If you’re like most admins, you want to fix this problem, but can’t really figure out how. These errors are notoriously hard to resolve because they don’t often happen regularly. Most of the time, you don’t know the exact configuration that caused the error, so it’s impossible to replicate the errors in a way that allows you to run wireshark to figure things out directly, so you just have to go off the error message and what it includes. In this post, I’ll go over the schannel 36887 errors, what it means, and what you should do about it.
What is SChannel?
SChannel is a shortened term for the Secure Channel system, which is what Windows uses to authenticate access and encrypt data. All of the protocols and authentication techniques are included in the SChannel system and any errors in this system are going to represent problems with processing. One thing to remember when addressing these errors; they only apply to HTTPS or other SSL/TLS encrypted sessions, unless they are tied to Active Directory domain replication or authentication errors. My focus in this article, though, is HTTPS, so we’ll ignore the other systems.
What is the 36887 Error?
SChannel 36887 errors occur when something happens with SSL/TLS sessions on the server. The error itself can mean a number of things, and you have to read the error message to find out what is causing the error. In almost every situation, these error happen because of issues with the client computer and not the server itself. There are some situations where there’s a problem with the server, but these are not as common. The frequency of the events can help you determine if there’s some problem with the server’s ability to encrypt data. If you get these events constantly, there is likely some issue with the certificate installed on the server that is encrypting HTTPS sessions, and you’ll want to investigate further. Later on, I’ll go over some of the error codes tied to the 36887 error and what you can do about them.
Figuring out the Cause
When viewing the 36887 errors, you will want to open up the error itself and look at what shows up the the general tab’s error information. You’ll want to look for a 2 or 3 digit error code as shown below:
Note the circled error number. You’ll need this information to determine the root cause of the error. In the next session, I’ll go over some of the codes in the next section.
Schannel 36887 Errors and What They Mean
There are quite a few of these error codes, and some of them are pretty confusing or not helpful. I won’t go over all of them, but I will highlight some of the more important ones. You can find a full list of the error codes and what the errors are at Microsoft’s document on the subject. If you are getting an error message that is listed there as “SSL3-” and whatever, disable SSL3.0. I won’t cover any of the SSL3 error codes here because they are old and I don’t want to encourage people to use SSL3.0.
Error 20 – This is an error you really want to look out for, because it’s an indicator that there is a man-in-the-middle attack going on. This error really only happens when the MAC address on the message is changed or corrupted. It’s very rare, and can happen with network corruption errors, but is also an indicator that someone is attempting to spoof MAC addresses or the MAC address on the message was changed. Investigate this heavily.
Error 21 – An error occurred when the server attempted to decrypt a message from the client. This one is weird and difficult to figure out. Most likely caused by network errors that corrupt the message in transit. If these are happening regularly, check your network for communication errors. If the network is fine, look for corruption on the server. I’ve never actually seen this error in the wild, so hopefully you don’t either.
Error 42 – The certificate is bad. Nobody knows *why* the certificate is bad, but it’s bad. Best solution here is to replace the certificate used for encryption. In the words of Pepe the King Prawn, you must “smack [it] like a bad, bad donkey, okay?”
Error 43 – The certificate isn’t supported. Usually this means that the client doesn’t support any of the encryption protocols defined by the certificate. If you can figure out which client is tripping this error, you can set it up to accept those authentication errors. In general, though, this only happens if the certificate is really really old.
Error 44 – The certificate has been revoked. You won’t see this error often, but just means that the certificate in use is not longer usable because it is insecure in some way. Just generate a new certificate and replace this one, because the one that is installed will never work again. Note that client machines cannot connect if this error is happening.
Error 45 – The certificate has expired and needs to be replace. All Digital Certificates have an expiration date and should not be used once they expire. Again, replace the certificate to fix this error. Clients can usually still connect when a certificate expires, but some web clients will not allow users to connect to systems with expired certificates.
Error 46 – This one is weird. The error means there has been an error with the certificate, but the system doesn’t recognize the error or doesn’t really know what happened. Often, you’ll see this error when users connect with out of date devices or browsers. However, it can also represent an attempt (usually a failed attempt) to break TLS encryption by a bad actor (A hacker. Not Paris Hilton). Most of the time you can ignore this error, but if the server is available from the Internet in any way, look into implementing a reverse proxy to protect against hacks that try to take advantage of flaws in encryption protocols.
Error 48 – The client doesn’t trust the Certificate Authority that created the certificate. This is usually easy to fix, and involves exporting a copy of the root CA certificate and importing it to the client’s computer in the Third Party Root Certificate Authorities store or the Trusted Root Certificate Authorities store. Specific instructions are available from Microsoft.
Error 49 – Access denied. This is an odd one. It doesn’t mean that access to the webpage was denied, it means that the client or server doesn’t have permission to use the certificate. Most often this will happen because the System or Machine account doesn’t have permission to read the Private Key on the certificate. Instructions to fix this are available from Watchguard. Just include the SYSTEM account in the ACL and grant it full permission. You may also need to grant this permission to NETWORK SERVICE, but don’t grant it to all users.
Error 51 – The message failed to decrypt. Usually caused by network corruption issues, but can be caused by an attempt to tamper with the message or because something was wrong with the encryption protocol that was used. If you see this regularly, dig into your network. This may also be caused by improper implementation of SSL/TLS, and needs to be fixed in the application itself.
Error 60 – The certificate in use was exported when export wasn’t authorized or an attempt to export an un-exportable certificate failed. Can signify at attempt to obtain the private key of the certificate for use in a hack, but mostly happens if you attempt to copy a cert that doesn’t support export.
Error 70 – The encryption protocol that the client or server attempted to use is not supported by the other system. This can occur if you have a Windows XP client that attempts to access a server that only support TLS1.2 or later, or a specific crypto-suite isn’t available to the client machine. If this happens, you need to allow older TLS protocols on the server (not recommended), Allow newer protocols on the server (if the server doesn’t support newer protocols, make sure it does), or upgrade whichever system doesn’t support newer protocols.
Error 71 – Pretty similar to error 70, this occurs when one system doesn’t support an encryption algorithm defined in the certificate. The fix is the same as error 70.
Error 80 – Service engine soon. In other words, something broke on the server, but it won’t tell you what. This error should be surrounded by some other errors that you can use to troubleshoot the problem, or you can just ignore it. Up to you.
Error 90 – This happens if a session is cancelled before completion. With the speed things happen these days, you aren’t likely to see this error. It can, however, be an indicator of attempted hack.
Error 110 and 111 – These are similar to 80, in that they represent unknown or totally arcane issues that are difficult to fix. Look around the error for clues.
Hopefully the list of errors and solutions to them above will help you when you are dealing with these error messages. A lot of times, the 36887 error can be ignored, but sometimes there is a problem that needs to be fixed. Use this guide if you run into these errors so you can fix them and clean up your error logs.