오늘은 다소 색다른 튜토리얼을 준비했습니다. 거의 마법에 가까운 방법으로 VirtualBox 실행 오류를 해결해 보겠습니다. 여러분이 겪고 있는 문제는 아마 이럴 것입니다. 최근 VirtualBox를 4.X 버전대로 업그레이드했는데, 갑자기 프로그램이 실행되지 않고 대신 오류 메시지만 출력합니다.
오류 메시지는 CERT_E_REVOCATION_FAILURE 같은 내용이라 솔직히 좌절감이 듭니다. 하지만 포기하지 마세요. 이런 종류의 문제를 제대로, 그리고 스마트하게 디버깅하는 방법을 알려드리겠습니다. 이 과정은 비슷한 문제를 백 번 마주쳤을 때도 도움이 될 것이며, Windows 명령줄 활용 능력을 기르는 좋은 학습이기도 합니다.
문제 상황
VirtualBox가 실행되지 않습니다. 이보다 단순할 수 없죠. 이벤트 뷰어 로그에는 유용한 정보가 없고, 시스템에 변화를 준 적이 없다고 생각합니다. 물론 그건 착각일 뿐입니다. 분명히 무언가 바뀌었기 때문에 VirtualBox가 정상 작동하지 않는 것입니다. 팝업 창은 VirtualBox 재설치를 권하지만, 그건 도움이 되지 않습니다. 전혀 다른 접근이 필요합니다.
해결 방법
이 문제를 해결하는 합리적인 첫걸음은 잠시 침착하게 생각해 보는 것입니다. 알고 보면 Oracle은 4.3.14 버전부터 VirtualBox의 보안을 크게 강화했습니다. 이로 인해 수많은 Windows 사용자가 각종 오류에 시달렸고, 그중 하나가 바로 CERT_E_REVOCATION_FAILURE입니다.
보안이 강화된 프로그램이 인증서 해지(revocation) 관련 불만을 토로하고 있는 것이죠. 흥미롭습니다. 직감적으로 이 문제는 Windows 인증서 확인 프로세스, 특히 온라인 및 오프라인 인증서 검증과 관련이 있어 보입니다. VirtualBox는 로컬에 설치된 프로그램이므로, 아마도 오프라인 검증 과정에서 문제가 생긴 것으로 추정할 수 있습니다.
여기에 그룹 정책(group policy) 등이 기본 Windows 설정을 변경했을 가능성도 있습니다. 원래 Windows는 상용 인증서에 대한 오프라인 승인을 허용했는데, 이 설정이 바뀐 경우입니다. 이렇게 퍼즐 조각들이 맞춰지면 해결책을 찾기가 한결 쉬워집니다.
우리가 할 일은 인증서 승인 관련 기본값을 확인하고, 필요하다면 변경하는 것입니다. 이 작업은 .NET 1.1 SDK에 포함된 SetReg라는 도구로 수행할 수 있습니다. 해당 SDK를 다운로드해 설치한 후 도구를 실행하면 문제가 해결되는지 바로 확인해 볼 수 있습니다. 마법 같지 않나요?
Windows 7 이상 환경에 설치하면 시스템이 호환성 경고를 표시할 수 있지만, 특히 IIS 웹 서버를 운영하지 않는다면 안심하고 무시해도 됩니다. 그런 다음 관리자 권한으로 cmd를 실행하고, SDK 설치 경로로 이동한 뒤 아래 명령어를 입력합니다.
MSDN 공식 가이드에 따르면 필요한 명령은 다음과 같습니다:
<설치 경로>\Microsoft.NET\SDK\v1.1\Bin\setreg.exe 5 true
그리고 짜잔! 이제 VirtualBox가 멀쩡하게 실행됩니다!
마치며
무엇을, 어떻게, 어디서, 언제 찾아야 하는지 알고, 어려운 문제에 대한 직감처럼 보이는 기술적 감각을 갖추고 있다면 해결책은 당연해 보인다는 말에 여러분은 저를 미워할지도 모릅니다. 하지만 이것이 진실입니다.
이번 사례가 여러분의 상상력을 자극하고, 겉보기에 절망적인 오류에 대한 문제 해결 감각을 키우는 데 도움이 되기를 바랍니다. 인증서라고? 아하, 뭔가 기업 환경에서 다루는 것 같으니 그룹 정책이 원인이겠군, 그렇다면 설정을 어떻게 바꾸지? 이런 식의 건전한 추론이야말로 이런 유형의 문제를 해결하는 데 꼭 필요한 사고방식입니다. 무엇보다 좋은 점은 아무것도 재설치할 필요가 없다는 것입니다. 약간의 명령줄 작업만으로 충분합니다. 즐겁게 문제를 해결하세요!
그럼, 즐거운 컴퓨팅 되세요.