2016-09-01 5 views
1

Надеюсь, это правильный форум; Я впервые разместил это на суперпользователе Stack и сразу же получил downvotes без объяснений. Затем я попробовал сайт сетевой разработки Stack, но ни один из моих тегов не существовал ... поэтому теперь я пытаюсь здесь. Я буду рад перевести это на правильный форум, когда узнаю.Отключение TLS 1.0 на Win2008 R2 прерывает наши сайты IIS

Мы работаем под управлением Windows Server 2008 R2. TLS 1.0 уже не совместим с PCI, и отключить его через реестр Windows легко. В прошлом, однако, отключение TLS 1.0 вызвало у нас 2 проблемы:

  1. Невозможно подключиться к серверу с помощью удаленного рабочего стола.
  2. Наши сайты IIS 6.1 становятся недоступными.

Проблема № 1 была исправлена ​​с MS patch KB3080079, но наши веб-сайты по-прежнему отключены, как только TLS 1.0 отключится. Что мне нужно сделать, чтобы IIS был счастлив, и сайты в Интернете, отключив TLS 1.0?

Вот сообщение об ошибке, которое происходит только тогда, когда TLS 1.0 отключена в системном реестре и после перезагрузки сервера:

Server Error in '/' Application. 
The system cannot find the file specified 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ComponentModel.Win32Exception: The system cannot find the file specified 

Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: [Win32Exception (0x80004005): The system cannot find the file specified] 

[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)] 
    System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +6749670 
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +815 
    System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) +6775368 
    System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +219 
    System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +6777754 
    System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +6778255 
    System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) +878 
    System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +1162 
    System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +72 
    System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +6781425 
    System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +103 
    System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +2105 
    System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +116 
    System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +1089 
    System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +6785863 
    System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +233 
    System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +278 
    System.Data.SqlClient.SqlConnection.Open() +239 
    System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +292 
    System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) +487 
    System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) +296 
    FitTrack.Objects.Helper.Utilities.GetDataTableForQuery(String sql, Hashtable paramList, Boolean isStoredProc) +1002 
    FitTrack.Objects.Helper.Utilities.GetDataTableForQuery(String sql, Hashtable paramList) +63 
    FitTrack.Objects.Base.FitTrackPage.GetFitTrackPage(String pageName) +197 
    FitTrack.Objects.Base.FitTrackBase.Authenticate(Boolean redirect, Boolean isloginpage, Boolean checkreg, Boolean isPayrollReport) +659 
    FitTrack.Default.Page_PreInit(Object sender, EventArgs e) +68 
    System.Web.UI.Page.PerformPreInit() +49 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1844 

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34280 

Примечание: TLS 1.1 и 1.2 были включены вручную в реестре.

+0

Как вы отключили TLS 1.0 точно и включили TLS 1.1/1.2 (я имею в виду, какие записи в реестре)? Попробуйте **, чтобы включить TLS 1.1/1.2 явно **, как описано [здесь] (https://support.quovadisglobal.com/kb/a433/how-to-enable-tls-1_2-on-windows-server-2008 -r2.aspx). На каком сервере/рабочих станциях вы используете IIS 6.1? – Oleg

+0

Я уже делал все это раньше (Windows Server 2008 R2), но, возможно, у меня что-то не так. Также я использовал инструмент IISCrypto. Я попробую еще раз, но есть ли что-то, что мне нужно сделать с IIS 6, чтобы мои сайты не вылетали после внесения такого изменения? Должна ли она просто работать автоматически? И следует ли отключать TLS 1.0 и 1.1? – HerrimanCoder

+0

Вы пишете о IIS 6 или IIS 6.1, не публикуя какую-либо информацию об операционной системе (с пакетом обновления), которую вы используете. ** На каком сервере/рабочих станциях вы используете IIS 6.1/6.0? ** Если вы хотите решить проблему, вам не следует использовать какие-либо инструменты (например, IISCrypto) как черный ящик и делать все изменения вручную. Какие изменения вы внесли в реестр (вы установили некоторые значения «DisabledByDefault» и «Enabled» в разделе «Клиент» или «Сервер» ключа «TLS 1.1» или «TLS 1.0» в «HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols')? – Oleg

ответ

0

Я думаю, что я обнаружил, что SQL Server на самом деле является причиной проблемы, когда TLS 1.0 отключается. (Что разрушает все наши сайты.) Есть исправление для этого: https://support.microsoft.com/en-us/kb/3135244