
우리는 우리가 판매하는 제품에 대한 데이터베이스 서비스를 제공하는 SQL Server 2000 환경을 구축하는 데이터 센터이며, 이는 우리의 많은 클라이언트와 워크스테이션 각각에 리치 클라이언트 응용 프로그램으로 로드됩니다.
현재 이 애플리케이션은 클라이언트 사이트에서 데이터 센터로의 직접적인 ODBC 연결을 사용합니다.
현재 모든 것이 일반 텍스트이고 인증이 약하게 암호화되어 있으므로 자격 증명 암호화를 시작해야 합니다. 그리고 클라이언트에 미치는 영향을 최소화하면서 서버에 SSL을 구현하는 가장 좋은 방법을 결정하려고 노력하고 있습니다.
그러나 몇 가지 사항은 다음과 같습니다.
1) 우리는 자체 Windows 도메인을 가지고 있으며 모든 서버가 개인 도메인에 연결되어 있습니다. 우리 고객은 우리 영역에 속하지 않습니다.
2) 일반적으로 클라이언트는 다음 중 하나를 통해 데이터 센터 서버에 연결합니다. a) TCP/IP 주소 사용 b) 인터넷을 통해 게시한 DNS 이름을 사용하여 DNS 서버에서 고객으로 영역 전송 또는 클라이언트가 정적 호스트를 추가할 수 있음 항목.
3) 암호화를 활성화하면 네트워크 유틸리티로 이동하여 암호화하려는 프로토콜에 대한 "암호화" 옵션을 선택할 수 있다는 것을 알 수 있습니다. TCP/IP와 같은 것입니다.
4) 암호화 옵션을 선택하면 타사 인증서 또는 자체 서명 인증서를 설치할 수 있습니다. 자체 서명을 테스트했지만 잠재적인 문제가 있습니다. 잠시 후에 설명하겠습니다. Verisign이나 네트워크 솔루션과 같은 타사 인증서를 사용하는 경우... 어떤 종류의 인증서를 요청해야 합니까? IIS 인증서가 아닌가요? Microsoft 인증서 서버를 통해 자체 서명된 인증서를 만들려면 "인증 인증서"를 선택해야 합니다. 이것이 제3자 세계에서는 무엇으로 해석됩니까?
5) 자체 서명된 인증서를 생성하는 경우 "발급 대상" 이름이 SQL을 실행하는 서버의 FQDN과 일치해야 한다는 것을 이해합니다. 제 경우에는 개인 도메인 이름을 사용해야 합니다. 이것을 사용하면 클라이언트가 SQL Server에 연결하려고 할 때 어떤 역할을 합니까? 확실히 그들은 네트워크에서 내 개인 DNS 이름을 확인할 수 없습니다....
또한 자체 서명된 인증서가 설치되면 SQL Server를 실행하는 사용자 계정의 로컬 개인 저장소에 있어야 한다는 것도 확인했습니다. FQDN이 인증서의 "발급 대상"과 일치하고 인증서가 설치된 계정에서 SQL이 실행되는 경우에만 SQL Server가 시작됩니다.
자체 서명된 인증서를 사용하는 경우 확인을 위해 모든 클라이언트가 인증서를 설치해야 한다는 의미입니까?
6) 최선의 선택인 것처럼 보이는 타사 인증서를 사용한 경우 인증서를 확인하는 데 사용하기 위해 개인 WAN 연결의 개인 서버에 액세스할 때 모든 클라이언트가 인터넷에 액세스할 수 있어야 합니까?
FQDN에 대해 어떻게 해야 합니까? 그들은 공개되지 않은 내 개인 도메인 이름을 사용해야 하고 내가 사용하도록 설정한 이름을 더 이상 사용할 수 없는 것 같습니다.
7) 곧 SQL 2000으로 업그레이드할 계획입니다. SQL 2000보다 SQL 2005에서 SSL 설정이 더 쉽고 더 좋습니까?
도움이나 안내를 주시면 감사하겠습니다.
답변1
솔직히 가장 좋은 방법은 데이터베이스 서버로 직접 이동하는 것을 중단하는 것입니다. 누구나 sa 계정을 사용하여 SQL Server에 로그인을 시도할 수 있으므로 이는 본질적으로 보안이 취약한 솔루션입니다.
더 나은 해결책은 웹 서버에 웹 서비스를 설정하고 응용 프로그램이 HTTPS를 통해 이 웹 서비스에 요청을 보내도록 한 다음 데이터베이스 연결을 끊거나 방화벽으로 설정한 상태에서 웹 서비스가 요청을 데이터베이스에 전달하도록 하는 것입니다. 공용 인터넷.
이는 또한 웹 서버가 데이터베이스와 통신하기 때문에 문제 없이 데이터베이스를 전환할 수 있다는 이점을 제공합니다. 또한 웹 계층의 로드 밸런싱을 수행하여 작업이 증가함에 따라 연결 로드를 웹 서버 전체에 분산시킬 수 있습니다.