로컬 아파치 개발 서버(localhost)에서 TLS를 사용하는 방법

로컬 아파치 개발 서버(localhost)에서 TLS를 사용하는 방법

내 라이브 서버를 미러링하지만 방화벽 뒤에 있는 개발 환경을 설정하려고 합니다.

최근까지 내 공유 호스팅 사이트는 TLS/SSL을 제공하지 않았기 때문에 문제/옵션이 아니었지만 이제는 암호화가 표준이므로 개발 환경을 재구성해야 합니다.

과거에는 라이브 서버와 동일한 도메인 이름(예: example.com) 및 디렉터리 구조를 사용하여 내 워크스테이션(Webmin이 구성됨)의 컨테이너에서 Ubuntu 서버를 실행했습니다. 내 웹 브라우저가 라이브 서버 대신 로컬 서버에 액세스할 수 있도록 /etc/hosts 파일에 example.com에 대한 항목을 추가했습니다. 이를 통해 비용이 많이 들 뿐만 아니라 오류가 발생할 수도 있는 "마이그레이션 플러그인"을 사용할 필요 없이 WordPress 사이트를 완벽하게 배포한 다음 간단한 복사 작업으로 라이브 서버에 배포할 수 있습니다.

내 문제는 이제 WordPress 사이트를 실행/테스트하기 위해 TLS 작업을 로컬로 올바르게 시뮬레이션해야 한다는 것입니다.

"라이브" 사이트 example.com은 "Let's Encrypt" 와일드카드 인증서를 사용합니다(따라서 라이브 사이트를 조작하는 것 외에는 어떤 방식으로도 Let's Encrypt를 사용할 수 없습니다). 그러나 개발을 위해서는 자체 암호화 인증서를 갖는 것이 완벽하게 허용됩니다. . 특정 유형의 서명 인증서가 있고 그것이 충분하다면 브라우저에 "예외를 추가"할 수 있습니다. 방화벽 외부의 누군가가 개발/스테이징 사이트에 액세스하도록 허용할 필요는 없습니다. 사이트는 플러그인과 테마에 대한 업데이트를 얻기 위해 "호출"할 수만 있으면 됩니다.

내가 본 모든 예에서는 Let's Encrypt 설정이나 localhost 설정에 대해 설명했지만 서버를 "스푸핑"하는 방법에 대해서는 설명하지 않았습니다.

가능합니까?

답변1

가장 간단한 방법은 자체 서명된 인증서를 생성하여 웹 서버에 추가하는 것입니다. 그리고 경고 메시지를 피하기 위해 브라우저에 추가하는 것을 잊지 마세요.

당신은 확인할 수 있습니다여기이를 수행하는 방법

단일 명령으로 이 작업을 수행할 수 있습니다.

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

개인 키를 비밀번호로 보호하지 않으려면 -nodes(DES 없음의 약어)를 추가할 수도 있습니다. 그렇지 않으면 "최소 4자"의 비밀번호를 묻는 메시지가 표시됩니다.

days 매개변수(365)를 임의의 숫자로 대체하여 만료 날짜에 영향을 줄 수 있습니다. 그런 다음 국가 이름과 같은 항목을 묻는 메시지가 표시되지만 Enter 키를 누르고 기본값을 그대로 적용하면 됩니다.

인증서 내용에 대한 질문을 표시하지 않으려면 -subj '/CN=localhost'를 추가하세요(localhost를 원하는 도메인으로 바꾸세요).

자체 서명된 인증서는 이전에 브라우저로 가져오지 않은 한 제3자 확인을 거치지 않습니다. 더 강력한 보안이 필요한 경우 CA(인증 기관)에서 서명한 인증서를 사용해야 합니다.

관련 정보