성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] VT sequences to "CONOUT$" vs. STD_O...
[정성태] NetCoreDbg is a managed code debugg...
[정성태] Evaluating tail call elimination in...
[정성태] What’s new in System.Text.Json in ....
[정성태] What's new in .NET 9: Cryptography ...
[정성태] 아... 제시해 주신 "https://akrzemi1.wordp...
[정성태] 다시 질문을 정리할 필요가 있을 것 같습니다. 제가 본문에...
[이승준] 완전히 잘못 짚었습니다. 댓글 지우고 싶네요. 검색을 해보...
[정성태] 우선 답글 감사합니다. ^^ 그런데, 사실 저 예제는 (g...
[이승준] 수정이 안되어서... byteArray는 BYTE* 타입입니다...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>SSL 인증서를 Azure Cloud Service에 적용하는 방법</h1> <p> 지난 글에 설명한 대로 했다면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > "Let's Encrypt"에서 제공하는 무료 SSL 인증서를 IIS에 적용하는 방법 (1) ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/10958'>http://www.sysnet.pe.kr/2/0/10958</a> </pre> <br /> 인증서가 생겼을 것입니다. 이것을 IIS에 적용해 보는 것은 다음의 글을 참고해 쉽게 하실 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > How to Import and Export SSL Certificates in IIS 7 ; <a target='tab' href='https://www.digicert.com/ssl-support/pfx-import-export-iis-7.htm'>https://www.digicert.com/ssl-support/pfx-import-export-iis-7.htm</a> </pre> <br /> 이 글에서는 Azure WebRole 웹 사이트에 SSL 인증서를 설치하는 방법을 알아보겠습니다. 물론, 다음과 같이 역시 문서가 이미 있지만. ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Configuring SSL for an application in Azure ; <a target='tab' href='https://azure.microsoft.com/en-gb/documentation/articles/cloud-services-configure-ssl-certificate/'>https://azure.microsoft.com/en-gb/documentation/articles/cloud-services-configure-ssl-certificate/</a> </pre> <br /> <hr style='width: 50%' /><br /> <br /> 우선, "Let's Encrypt"로부터 구한 .pfx 파일을 Azure에 업로드하는 것부터 시작하면 됩니다.<br /> <br /> Azure Portal에 연결해 "Cloud service (classic)" 유형의 서비스를 선택한 다음, "Settings" / "Certificates" 링크를 눌러,<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='ssl_azure_1.png' src='/SysWebRes/bbs/ssl_azure_1.png' /><br /> <br /> .pfx 파일을 "Upload" 버튼을 이용해 Azure에 등록합니다. 그럼 다음과 같은 결과를 볼 수 있습니다.<br /> <br /> <img onclick='toggle_img(this)' class='imgView' alt='ssl_azure_2.png' src='/SysWebRes/bbs/ssl_azure_2.png' /><br /> <br /> 이제 남은 작업은 여러분들의 배포 프로젝트만 변경해 주시면 됩니다. 먼저 Azure Cloud Service 배포 프로젝트에 포함된 .csdef 파일에 인증서 내용을 추가해야 하는데, 도움말에 써 있는 내용이 예사롭지 않습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > <WebRole name="CertificateTesting" vmsize="Small"> ... <Certificates> <Certificate name="SampleCertificate" storeLocation="LocalMachine" storeName="My" permissionLevel="limitedOrElevated" /> <!-- IMPORTANT! Unless your certificate is either self-signed or signed directly by the CA root, <span style='color: blue; font-weight: bold'>you must include all the intermediate certificates here.</span> You must list them here, even if they are not bound to any endpoints. Failing to list any of the intermediate certificates may cause hard-to-reproduce interoperability problems on some clients.--> <Certificate name="CAForSampleCertificate" storeLocation="LocalMachine" storeName="CA" permissionLevel="limitedOrElevated" /> </Certificates> ... </WebRole> </pre> <br /> 예를 들어 "Let's encrypt"로부터 받은 SSL 인증서의 경로가 다음과 같은데,<br /> <br /> <img alt='letsencrypt_3.png' src='/SysWebRes/bbs/letsencrypt_3.png' /><br /> <br /> <ul> <li>DST Root CA X3</li> <li>Let's Encrypt Authority X3</li> <li>...[your cert]....</li> </ul> <br /> 도움말에 의하면 여러분들의 인증서와 함께 "intermediate certificates"에 해당하는 "Let's Encrypt Authority X3"까지 포함해 2개의 항목을 기재해야 하는 것입니다. 다음은 제 sysnet 웹 사이트의 변경된 내용을 보여줍니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > <?xml version="1.0" encoding="utf-8"?> <ServiceDefinition ...[생략]...> ...[생략]... <span style='color: blue; font-weight: bold'><Certificates> <Certificate name="www.sysnet.pe.kr" storeLocation="LocalMachine" storeName="My" permissionLevel="limitedOrElevated" /> <Certificate name="Let's Encrypt Authority X3" storeLocation="LocalMachine" storeName="CA" permissionLevel="limitedOrElevated" /> </Certificates></span> </WebRole> </ServiceDefinition> </pre> <br /> 그런 다음 역시 동일한 .csdef 파일에 https 접근을 위한 Endpoints와 Binding을 추가해 줍니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > <?xml version="1.0" encoding="utf-8"?> <ServiceDefinition ...[생략]...> ...[생략]... <Sites> <Site name="Web"> <Bindings> <Binding name="Endpoint1" endpointName="Endpoint1" /> <span style='color: blue; font-weight: bold'><Binding name="HttpsIn" endpointName="HttpsIn" /></span> </Bindings> </Site> </Sites> <Endpoints> <InputEndpoint name="Endpoint1" protocol="http" port="80" /> <span style='color: blue; font-weight: bold'><InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="www.sysnet.pe.kr" /></span> </Endpoints> <Certificates> <Certificate name="www.sysnet.pe.kr" storeLocation="LocalMachine" storeName="My" permissionLevel="limitedOrElevated" /> <Certificate name="LetsEncryptAuthorityX3" storeLocation="LocalMachine" storeName="CA" permissionLevel="limitedOrElevated" /> </Certificates> </WebRole> </ServiceDefinition> </pre> <br /> 마지막으로 .csdef 파일이 포함된 배포 프로젝트에 .cscfg 파일을 열어 .csdef에 명시했던 인증서를 추가해줍니다. (thumbprintAlgorithm 값은 인증서의 속성창에서 구할 수 있고, thumbprint 값은 인증서 속성 창뿐만 아니라 Azure Portal에 등록된 인증서 목록에서도 구할 수 있습니다.)<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > <?xml version="1.0" encoding="utf-8"?> <ServiceConfiguration ...[생략]...> <Role ...[생략]...> ...[생략]... <ConfigurationSettings> ...[생략]... </ConfigurationSettings> <Certificates> <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" ...[생략]... /> <span style='color: blue; font-weight: bold'><Certificate name="www.sysnet.pe.kr" thumbprint="CC5D8A0EBA4C72BB42308A851261A3FBFCBC115E" thumbprintAlgorithm="sha1" /> <Certificate name="LetsEncryptAuthorityX3" thumbprint="E6A3B45B062D509B3382282D196EFE97D5956CCB" thumbprintAlgorithm="sha1" /></span>"'" </Certificates> </Role> </ServiceConfiguration> </pre> <br /> 여기까지 마치고, 다시 웹 사이트를 Azure에 배포해 주면 끝!!!<br /> <br /> 확인을 위해 "<a target='tab' href=''>https://www.sysnet.pe.kr</a>"로 접속해 보세요. ^^<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1978
(왼쪽의 숫자를 입력해야 합니다.)