독까의 이야기

 1.  FTP 구축하기
  -  우선 IIS 및 FTP 서버가 설치 되었다는 전제하에 진행
  -  IIS 관리자 실행 - 사이트 - 우클릭 - FTP 사이트 추가
     ->  FTP 이름 : test / 실제경로 : D 드라이브에 생성한 임의의 폴더 선택
     ->  바인딩 및 SSL 설정 default 로 진행
     ->  인증 및 권한 부여 정보 : 인증 = 기본 / 액세스 허용 = 지정한 사용자 - administrator / 사용 권한 = 읽기, 쓰기
     ->  마침을 누르면 FTP 사이트가 생긴 것을 확인 할 수 있음

  -  FTP 작동하는지 확인
     ->  CMD
     ->  ftp
     ->  open localhost
     ->  administrator
     ->  1234
     ->  230 User logged in. 확인 되면 FTP 정상적으로 작동됨을 확인 한 것임

  -  로컬에서는 FTP 접속이 가능한데 외부에서 접속이 되지 않는 경우에는 등록된 방화벽이 적용이 되지 않은 것으로 판단 되기 때문에
     서버를 재시작하여 방화벽을 적용
  -  재시작 후에 FTP 접속 프로그램으로 확인 결과 정상적으로 작동 됨을 확인

  -  위의 설정방법은 로컬계정을 추가하여 해당 계정이 FTP 사이트에 접속하게 하는 방법임
     이 방식 외에 로컬 계정 추가 없이 FTP 에서 계정을 생성하여 해당 계정만 접속이 가능하도록 하는 방식이 있음

2.  FTP 사이트 개별 사용자 접속 구축 (로컬 계정 생성 없음)
  -  IIS 관리자 실행 - 관리 - 관리 서비스 - 윈도우 자격 증명 또는 IIS 관리자 자격 증명 선택 후 적용
  -  IIS 관리자 사용자 - 사용자 추가 - gunnm / 1234
  - FTP 사이트 추가
     ->  FTP 이름 : test / 실제경로 : D 드라이브에 생성한 임의의 폴더 선택
     ->  바인딩 및 SSL 설정 default 로 진행
     ->  인증 및 권한 부여 정보 : 인증 = 기본 / 액세스 허용 = 지정한 사용자 - gunnm / 사용 권한 = 읽기, 쓰기
  -  생성한 FTP 사이트
     ->  IIS 관리자 권한 - 사용자 허용 - IIS 관리자 -gunnm 선택
  -  FTP 권한 부여 규칙 - 허용 규칙 추가 - 지정한 사용자 - 사용자 입력 및 권한 부여 (읽기, 쓰기)
  -  FTP 인증 - 사용자 지정 공급자 - IIS ManagerAuth 선택
  -  폴더에 네트워크 서비스 접근 권한을 추가
     ->  이 작업이 완료되지 않으면 로그인이 되지 않음
     ->  Windows\System32\inetsrv\Config 폴더에 대하여 Network Service가 읽기 권한을 가져야 함
         ->  icacls %windir%\System32\inetsrv\Config /Grant "Network Service":R /T
     ->  FTP 루트 폴더에 대하여 Network Service가 읽기, 쓰기 등의 권한을 가져야 함
         ->  icacls "FTP 루트 폴더" /Grant "Network Service":F /T
         ->  icacls E:\FTP_ROOT /Grant "Network Service":F /T
  -  설정 적용 완료
  -  gunnm 계정으로 로그인 시도
     ->  정상적으로 접속 확인

인증서 발급 기관에서 멀티 인증서 구입후 IIS 7.5 이상에 적용하는 방법

appcmd set site /site.name:"사이트 이름" /+bindings.[protocol='https',bindingInformation='*:443:호스트 헤더 값']


기존 인증서 제거 후 신규 인증서를 서버 인증서에 등록

웹사이트에 등록되어 있는 https 바인딩 전부 제거

C:\Windows\System32\inetsrv

appcmd set site /site.name:"AAA.com" /+bindings.[protocol='https',bindingInformation='*:443:AAA.com']
appcmd set site /site.name:"BBB.com" /+bindings.[protocol='https',bindingInformation='*:443:BBB.com']
appcmd set site /site.name:"CCC.com" /+bindings.[protocol='https',bindingInformation='*:443:CCC.com']

대표 도메인 1개에 대해서 바인딩 - 편집 - 인증서 선택 하면 변경 된 인증서 확인 가능


일반적인 방식으로 

처리기매핑에 스크립트 매핑을 추가 하였으나 출력 안 됨 : *.html / %windir%\system32\inetsrv\asp.dll / ASP_HTML

기존 

<handlers>
            <remove name="ASP_HTML" />
            <add name="ASP_HTML" path="*.html" verb="*" modules="IsapiModule" scriptProcessor="%windir%\system32\inetsrv\asp.dll" resourceType="File" preCondition="bitness64" />
                                </handlers>
    </system.webServer>

그래서 

web.config 파일을 아래와 같이 수정 했더니 잘 됨

<handlers>
            <remove name="ASP_HTML" />
            <add name="ASP_HTML" path="*.html" verb="*" modules="IsapiModule" scriptProcessor="%windir%\system32\inetsrv\asp.dll" resourceType="File" preCondition="bitness32" />
                                </handlers>
    </system.webServer>