Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 248. Lync 2013 서버 설치 방법 [링크 복사], [링크+제목 복사]
조회: 19849
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Lync 2013 서버 설치 방법

예전에 Lync의 전신인 "Office Communicator Server"를 설치해 봤었는데요.

기업용 메신저를 위한 Office Communicator Server 2007 설치
; https://www.sysnet.pe.kr/2/0/1383

이번에는 최신 버전인 Lync 2013을 구성해 보기로 했습니다. 근데... 방법이 꽤나 복잡하군요. ^^;

Step by Step Installing Lync Server 2013 Standard Edition Front End on Windows 2012 ? Part 1 
; http://windowspbx.blogspot.kr/2012/07/step-by-step-installing-lync-server.html

위의 글은 "Part 1"이라고 되어 있지만, 일단 저 글대로만 하면 서비스 구성은 완료되므로 다른 글은 볼 필요가 없습니다.

Lync 설치를 위해서는 우선 기본적인 환경 구성이 있어야 하는데, 이게 은근히 복잡합니다.

- Active Directory 서버
    - 같은 서버에 DNS, Certificate Authority 서비스 설치 (물론, DNS/CA 서비스를 다른 컴퓨터에 설치해도 됩니다.)
    - (AD 도메인 명은 제 경우에 "testad.com"입니다.)
    - (AD 서버의 이름은 제 경우에 "testpdc"입니다.)

- Lync를 설치할 Windows Server 2012 (AD 가입)
    - (제 경우에 컴퓨터 이름은 "lync2013"입니다. 따라서, Lync 서버의 FQDN은 "lync2013.testad.com"입니다.)

이렇게 2대의 서버가 구성되었으면 이제, Lync를 설치할 서버에 다음과 같은 설정을 추가합니다.

1. 실버라이트 설치
    Get Silverlight | Microsoft Silverlight
    ; http://www.microsoft.com/getsilverlight/

2. Add Roles and Features
    * Roles
        - Web Server (IIS)
            Common HTTP Features
                Default Document
                HTTP Errors
                Static Content

            Health and Diagnostics 
                HTTP Logging 
                Logging Tools 
                Tracing

            Performance 
                Static Content Compression 
                Dynamic Content Compression

            Security 
                Request Filtering 
                Client Certificate Mapping Authentication 
                Windows Authentication

            Application Development 
                .NET Extensibility 3.5 
                .NET Extensibility 4.5 
                ASP.NET 3.5 
                ASP.NET 4.5 
                ISAPI Extensions 
                ISAPI Filters

        - Management Tools 
            IIS Management Console 
            IIS Management Scripts and Tools


    * Features
        - .NET Framework 3.5 Features 
            .NET Framework 3.5 
            HTTP Activation
            Non-HTTP Activation

        - .NET Framework 4.5 하위의 모든 옵션

        - Message Queuing | Message Queuing Services 
        - Remote Server Administration Tools | Role Administration Tools | AD DS and AD LDS Tools 
        - User Interfaces and Infrastructure | Desktop Experience  


3. 재부팅하고, 도메인 관리자 권한의 사용자로 로그인

여기까지가 "prerequisite" 단계입니다. ^^ 이제는 본격적으로 Lync 서비스를 설치할 텐데요. 저는 "Step by Step Installing Lync Server 2013 Standard Edition Front End on Windows 2012 - Part 1 " 글에 따라 다음과 같이 구성을 했습니다.

1. 설치 CD로부터 .\Setup\amd64\setup.exe 실행

2. Visual C++ x64 Runtime 설치를 할 것인지 여부를 묻는 창이 뜨는데, "Yes"를 선택하고,

3. Lync 설치 폴더를 묻는 창이 뜨는데 제 경우에는 "d:\Program Files\Microsoft Lync Server 2013"으로 설치 시작
    
4. 파일 복사가 완료되자마자 "Lync Server 2013 - Deployment Wizard" 창이 뜹니다.

5. Wizard 창 메뉴에서 "Prepare Active Directory" 링크를 클릭하면 "Active Directory Preparation" 단계로 바뀌고,
    Step1 - Run

    Step2 - 수작업으로 확인을 한다는 것인데, 구체적인 방법은 다음의 글에 있습니다.

        스키마 파티션의 복제 확인
        ; https://docs.microsoft.com/en-us/skypeforbusiness/help-topics/help-depwiz/verify-replication-of-schema-partition

        2대의 AD가 있는 경우에 복제가 잘 되는지 확인하라는 것입니다. AD의 정상 동작 여부가 중요하기 때문에 
        이쯤에서 미리 한번 확인을 하는 것이 권장됩니다. 방법은 adsiedit.msc를 입력해서 실행, 
        관리 콘솔에서 2대의 AD 서버에 접속한 후,
           
        lync2013_install_1.png

"Schema" 노드에서 "rangeUpper" 속성 값이 1150, "rangeLower" 속성 값이 3임을 확인. Step3 - Run - "Local domain"과 "Domain FQDN" 중에서 선택하는데, 제 경우에는 "Local domain"을 선택하고 진행. Step4 - 역시 Step2처럼 검증하고, (제 경우에는 생략) Step5 - Run Step6 - Step2처럼 검증 (제 경우에는 생략) Step7 - 이 단계의 설명이 좀 애매한데요. 저는 AD 서버에서 "Active Directory Users and Computers" 관리 콘솔을 실행, "Users" 폴더에 "CSAdministrator" 그룹이 추가되어 있는데 이곳에 "Domain Admins" 그룹을 추가했습니다. (또는 실제 Lync 서비스를 관리할 사용자 계정만을 추가해도 되는 듯합니다.) 자세한 사항은 다음의 글을 참고하세요. Lync Server 제어판 관리자 만들기 ; https://docs.microsoft.com/en-us/skypeforbusiness/help-topics/help-depwiz/create-skype-for-business-server-control-panel-administrators 6. Step 7까지 마친 후 "Back" 버튼을 눌러 Wizard의 첫 화면으로 이동 우측 상단에 "Prepare first Standard Edition server" 링크를 클릭해서 구성 시작을 합니다. (6~10분 정도 소요) 7. Active Directory에 설치된 DNS 서비스가 있는 서버에 로그인 한 후 DNS 관리자를 실행하고, "Other New Records" / "Service Location (SRV)" 레코드 생성 Service = _sipinternaltls Protocol = _tcp Port number = 5061 Host Offering the service = [fqdn of Lync Std. FE server or Pool.] (제 경우에는 이 값으로 "testad.com") 3개의 "New Host (A or AAAA)…" 레코드 생성 meet dialin admin 위의 3개 A 레코드에 대한 IP 주소는 lync2013.testad.com의 IP 주소를 입력 8. "Lync Server 2013 - Deployment Wizard" 창으로 돌아가서 "Install Administrative Tools" 링크 눌러서 설치 9. Window 키를 눌러 2012 서버의 "시작" 화면으로 가서 "Lync Server Topology Builder" 아이콘을 눌러 실행, "New Topology"를 선택하고 "OK", "Save New Topology As" 파일 저장 대화창이 뜨면 원하는 아무 이름이나 입력하고 "Save" 버튼을 누릅니다. 참고로, 저장되는 파일의 위치는 "C:\Users\[계정명]\AppData\Roaming\Microsoft\Windows\Recent"입니다. 그럼, "Primary SIP domains:"를 묻는 창이 나오고 여기에 Active Directory 도메인(testad.com)을 입력 그럼, "Specify additional supported domains"가 나오는데, 그냥 넘어감 그럼, "Define the first site" 단계가 나오고 "Name"에 (임의의) 원하는 Lync 사이트 명을 입력합니다. (제 경우에, Lync2013Site1) 그럼, "Specify site details"에서 "City", "State/Province", "Country/Region Code"가 나오는데 역시 (임의의) 원하는 값을 입력하고, 그럼, "New topology was successfully defined" 단계가 나오고 그대로 "Finish" 버튼을 누름. 그럼, "Define New Front End Pool" 창이 뜨고, 첫화면은 그냥 "Next"로 넘어가고, 그럼, "Define the Front End pool FQDN" 단계로 넘어가는데, "FQDN"에는 이전 7번 단계에서 "AD DNS" 서버에 _sipinternaltls 레코드의 Host 값으로 입력한 FQDN 값을 입력(제 경우에 testad.com), 그리고 "Standard Edition Server"를 선택. 그럼, "Select features" 단계로 넘어가고, "Conferencing", "Enterprise Voice", "Call Admission Control" 3개만 선택하고 "Next" 그럼, "Select collocated server roles" 단계가 나오고, "Collocate Mediation Server" 선택된 체로 "Next" 그럼, "Associate server roles with this Front End pool" 단계가 나오고, "Enable an Edge pool to be used by the media component of this Front End pool."은 선택되지 않은 체로 그냥 "Next" 그럼, "Define the SQL Server store"가 나오는데, 기본값 그대로 두고 "Next"하면 됩니다. 하지만, 이 단계에서 "share"라는 이름의 공유 폴더를 생성해 두는 것이 좋습니다. 제 경우에는 "d:\share" 폴더를 만들었고 그 공유 이름을 "share"로 한 후, 아래의 4개 계정에 대해 RTCHSUniversalServices RTCComponentUniversalServices RTCUniversalServerAdmins RTCUniversalConfigReplicator 각각 Read/Write 권한을 부여했습니다. Read/Write 권한은 "공유 폴더의 권한"에도 주고, "폴더 자체의 권한"에도 주어야 합니다. 그럼, "Define the file store"가 나오는데, 역시 기본값 그대로 두고 "Next" 그럼, "Specify the Web Services URL"이 나오고, 기본값 그대로 두고 "Next" 그럼, "Select an Office Web Apps Server"가 나오는데 제 경우에는 구성을 안했지만 "OWA.testad.com"으로 그냥 해두라고 해서 그렇게 하고, "Finish" 버튼을 누르면 "Lync Server Topology Builder" 화면으로 돌아갑니다. 10. "Lync Server Topology Builder"의 좌측 트리뷰에 "Lync Server" 항목을 마우스 우측 버튼을 눌러 나오는 메뉴의 "Edit Properties..."를 선택, 그럼, "Edit Properties" 창이 뜨고, 하단으로 내려 "Administrative access URL" 란에 "https://admin.[your domain name]"을 입력하고 "OK" 11. "Lync Server Topology Builder"의 "Action" / "Publish Topology..."를 선택하고 2번의 묻는 질문에 그냥 "Next" 버튼을 누르면 구성 시작. 12. 다시 "Lync Server 2013 - Deployment Wizard"로 가서, "Install or Update Lync Server System" 링크를 클릭 Step1 - "Run" 시키면 "Install Local Configuration Store" 창이 뜨고, "Configure Local Replica of Central Management Store" 단계에서 "Retrieve directly from the Central Management store or imported from a file." 옵션 선택 그대로 두고 "Next" Step2 - "Run" 시키면 "Set Up Lync Server Components" 대화창이 뜨고 "Install" 버튼을 눌러 실행만 하면 됨. 실행이 완료된 후 "IIS 관리자"를 실행시켜 "Lync Server External Web Site", "Lync Server Internal Web Site" 웹 사이트가 있는지 확인. 만약 그 2개의 사이트가 없다면, 재부팅 후 다시 Step 2를 반복. Step3 - "Run" 시키면 "Certificate Wizard" 창이 뜨고 "Default certificate" 항목을 선택 후 "Request" 버튼을 누릅니다. 그럼, "Certificate Request" 대화창이 뜨고, "Next" 그럼, "Delayed or Immediate Requests" 창이 뜨고, "Send the request immediately to an online certification authority"를 기본값 선택 그대로 "Next" 그럼, "Choose a Certificate Authority (CA)" 단계가 나오고, 대부분의 경우 CA 이름은 다를 텐데, 이 이름은 CA 서비스가 설치된 서버에 "Certification Authority" 관리 콘솔에 보여지는 (왼쪽) 트리 뷰의 CA 노드 이름을 CA 서버의 FQDN과 합쳐서 입력해야 합니다. (참조: https://www.sysnet.pe.kr/2/0/1011) 예를 들어, CA 인증서가 설치된 서버가 "testpdc.testad.com"이고 CA 인증 서버 이름이 "testad-TESTPDC-CA"이면 "testpdc.testad.com\testad-TESTPDC-CA"가 되고, 이 문자열을 "Specify another certification authority" 입력란에 넣어줘야 합니다. 그럼, "Certification Authority Account" 단계가 나오고, "Specify alternate credentials for the certification authority"에 대해 위에서 입력한 "testpdc.testad.com" 서버로의 접속 권한이 현재 로그인 계정에 없다면 입력해야 하지만, 있다면 체크 박스를 해제하고 "Next" 그럼, "Specify Alternative Certificate Template" 단계가 나오고, 그대로 "Next" 그럼, "Name and Security Settings" 단계가 나오고 "Friendly name"에 원하는 임의의 이름을 넣고 "Next" (제 경우에 예제처럼 "Primary FE Cert"로 입력) 그럼, "Organization Information" 단계가 나오고 역시 원하는 임의의 텍스트를 넣고 "Next" 그럼, "Geographical Information" 단계가 나오고 역시 원하는 임의의 값을 선택 및 입력하고 "Next" 그럼, "Subject Name/Subject Alternative Names" 단계가 나오고 "Next" 그럼, "SIP Domain setting on Subject Alternative Names" 단계가 나오고 "Configured SIP domains"에 여러분의 Active Directory 도메인을 선택하고 "Next" 그럼, "Configure Additional Subject Alternative Names" 단계가 나오고 "Next" 그럼, "Certificate Request Summary" 단계가 나오고 "Next" 그럼, "Assign..." 단계가 나오고 "Next" 'Assign...' 단계를 정상적으로 마쳤으면 다시 "Step3"의 처음으로 가서, 이번에는 "Default certificate" 다음에 나오는 "OAuthTokenIssuer"를 선택하고 "Request" 버튼을 눌러 과정을 반복. Step4 - "Start Service" 단계를 "Run" 시킵니다. 완료 후 서비스 관리자에서 "Lync Server"로 시작하는 (16개의) 서비스들이 모두 실행 중인지 확인합니다. 13. "시작" 메뉴를 통해 "Lync Server Control Panel"을 실행합니다.

여기까지가 Lync 서비스 설치입니다. 정상적으로 설치가 되었다면 "Lync Server Control Panel"이 잘 실행될 것입니다.




서비스는 이제 구성했으니, 정말로 잘 동작하는지 Lync 클라이언트로 테스트를 해볼까요? ^^ 제 경우에 AD에 등록된 다음의 두 사용자 계정으로 Lync 클라이언트를 실행시켜 서로 통신이 되는지 확인해 볼 것입니다.

lynctestuser@testad.com
lync_user1@testad.com

이를 위해 "Lync Server Control Panel" 프로그램에서 좌측 "Users" 메뉴를 선택한 후 나타나는 우측 패널에서 "Enable users" 버튼을 눌러 저 2개의 계정을 추가했습니다.

"Lync 2013 클라이언트" 프로그램은 무료로 배포 중인 Basic 버전이 있고,

Microsoft Lync Basic 2013 (64 Bit) 
; http://www.microsoft.com/en-us/download/details.aspx?id=35450

유료 버전인 "마이크로소프트 오피스" 제품에 포함된 "Lync 2013 Pro"가 있습니다. 당연히 프로 버전이 기능이 많겠지만, 기본적인 테스트는 Basic 버전으로도 충분하니 여건이 되는데로 아무거나 실행하시면 됩니다.

Active Directory에 참여한 2대의 PC에 Lync를 설치하고 실행하면, 자동으로 현재 로그인한 AD 사용자 계정으로 Lync 로그인 시도가 됩니다. (물론, 다른 사용자로 로그인 하는 것도 가능합니다.)

와~~~~ ^^ 정말, Lync 메신저가 잘 실행이 되고 있습니다.

lync2013_install_2.png




이제부터는 설치를 하면서 겪었던 오류 상황을 나열해 보았습니다.

만약 설치 시, 다음의 오류가 발생한다면?

Creating Central Management store - Failure

Error: An error occurred: "Microsoft.Rtc.Management.Deployment.DeploymentException" "Cannot find any suitable disks for database files. You must manually specify database paths."

아래의 글에 해답이 나오는데요.

Lync Server 2013 Standard Command execution failed: Cannot find any suitable disks for database files. You must manually specify database paths.
; https://social.technet.microsoft.com/Forums/lync/en-US/290b0104-c82c-49cd-85ab-30103fe5b7d1/lync-server-2013-standard-command-execution-failed-cannot-find-any-suitable-disks-for-database?forum=ocsplanningdeployment

제 경우에는 Lync 서비스를 d 드라이브에 설치한다고 했는데도 SQL 서버가 기본적으로 c 드라이브에 설치되기 때문에 그것 때문에 C 드라이브도 16GB가 넘는 여유 공간이 필요합니다.




설치 시 다음의 오류를 접한다면?

Created trusted service entry for type=Microsoft.Rtc.Applications.Cps, port=5075, routable=True, gruuId=65417098-179d-5c3a-b5f2-abecd4f2b09e and FQDN=lync2013.testad.com.

Creating the contact for the application.

Creating application data directory.

InvalidFolder: Invalid share.
Error: Cannot create directory because the path is read only: \\lync2013.testad.com\share\1-ApplicationServer-1\AppServerFiles\CPS 

Type: DeploymentException

Stack Trace 
    at Microsoft.Rtc.Management.Deployment.Core.DeploymentCommon.CreateDirectory(String path) 
    at Microsoft.Rtc.Management.Deployment.Roles.InternalApplication.CreateApplicationDataDirectory(UcasApplication application, IService service) 

다음의 글에 따라,

Enabling Topology - Completed with Errors (Error Code 2310)
; http://blogs.technet.com/b/dodeitte/archive/2010/09/15/enabling-topology-completed-with-errors-error-code-2310.aspx

d:\share 폴더를 만들고, 해당 폴더를 공유한 다음, 그 폴더의 공유 권한에 다음의 그룹을 추가하고,

RTCHSUniversalServices
RTCComponentUniversalServices
RTCUniversalServerAdmins 
RTCUniversalConfigReplicator

각각 Read/Write 권한을 부여하면 됩니다.




설치 시 다음의 오류를 접한다면?

Role: FileStore:1   2014-10-21 오후 5:53:29     
                     └    Requires setup: True   2014-10-21 오후 5:53:29     
                     └    Successfully created directory \\lync2013.testad.com\share\1-WebServices-1\ABFiles.   2014-10-21 오후 5:53:29     
                     └    Found "RTCComponentUniversalServices": True   2014-10-21 오후 5:53:29     
                     └    ACLError: Access permissions error.   2014-10-21 오후 5:53:29   Error 
                     └    Error: Failed to save permissions on "\\lync2013.testad.com\share". 
? Details 
└ Type: DeploymentException 
└ ? Stack Trace 
    └   at Microsoft.Rtc.Management.Deployment.Core.LcsObjectSecurity.CommitSecurity() 
at Microsoft.Rtc.Management.Deployment.Roles.ActivationDriver.AddRights(DeploymentContext context, Member member, Right right, LcsObjectSecurity fs) 
 
└ ? Additional Details 
    └   Error: Attempted to perform an unauthorized operation. 
? Details 
└ Type: UnauthorizedAccessException 
└ ? Stack Trace 
    └   at System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl) 
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext) 
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections) 
at Microsoft.Rtc.Management.Deployment.Core.LcsObjectSecurity.CommitSecurity() 

                    2014-10-21 오후 5:53:29   Error 
                     └    ACLError: Failed adding "AccessRead" permissions for "RTCComponentUniversalServices" on "\\lync2013.testad.com\share". Access control list (ACL) might fail on UNIX file shares. Refer to the deployment guide to manually set the ACLs in the file share.   2014-10-21 오후 5:53:29     
                     └    ACLErrorResolution: Re-run Enable-CSTopology and/or Enable-CSComputer.   2014-10-21 오후 5:53:29     
                     └    Access control list (ACL) was added.   2014-10-21 오후 5:53:29     
                     └    Acl: "AccessRead" permissions for "RTCComponentUniversalServices" on "\\lync2013.testad.com\share\1-WebServices-1\ABFiles".

위의 "d:\share" 공유 폴더의 "공유 보안"뿐만 아니라, 해당 폴더 자체의 보안까지 Read/Write 권한을 줘야 합니다.




"Lync Server 2013 - Deployment Wizard"의 "Install or Update Lync Server System" 링크에서 "Step3" 인증서 구성 시, 다음의 오류가 발생한다면?

Error: An error occurred: "System.ArgumentException" "Unable to contact certification authority (CA) "testpdc.testad.com\TESTPDC" or the parameter is incorrect."

이런 경우 "Choose a Certificate Authority (CA)" 단계에서 "Select a CA from the list detected in your environment"의 리스트 박스에 보여지는 기본값(testpdc.testad.com\TESTPDC)을 선택했기 때문입니다. 대부분의 경우 CA 이름은 다를 텐데, 이 이름은 CA 서비스가 설치된 서버에 "Certification Authority" 관리 콘솔에 보여지는 왼쪽 트리 뷰의 CA 노드 이름을 CA 서버의 FQDN과 합쳐서 입력해야 합니다.

다음의 글에 CA 노드 이름을 구하는 방법이 설명되어 있으니 참고하세요.

인증서 갱신 오류 - The request contains no certificate template information.
; https://www.sysnet.pe.kr/2/0/1011

예를 들어, CA 인증서가 설치된 서버가 "testpdc.testad.com"이고 CA 인증 서버 이름이 "testad-TESTPDC-CA"이면 "testpdc.testad.com\testad-TESTPDC-CA"가 되고, 이 문자열을 "Specify another certification authority" 입력란에 넣어줘야 합니다.




"Lync Server 2013 - Deployment Wizard"의 "Install or Update Lync Server System" 링크에서 "Step3" 인증서 구성 시 인증서 요청을 성공적으로 마치고 현재 서버에 Assign하는 단계에서 다음과 같은 오류가 발생할 수 있습니다.

WARNING: Set-CSCertificate failed.
WARNING: Detailed results can be found at "C:\Users\[사용자계정]\AppData\Local\Temp\Set-CSCertificate-[2014_10_22][16_42_22].html".
Command execution failed: Https binding not found on the website.

Error: Https binding not found on the website. 
▼ Details 
└ Type: InvalidOperationException 
└ ▼ Stack Trace 
    └   at Microsoft.Rtc.Management.Deployment.Core.Certificate.BindCertiticate(X509Certificate2 cert, Int64 siteId, Boolean addBinding) 
at Microsoft.Rtc.Management.Deployment.Core.Certificate.SetCertificate(CertificateData certData) 
at Microsoft.Rtc.Management.Deployment.Core.Certificate.SetCertificate(String thumbprint, Nullable`1 effectiveTime, Boolean isRoll) 
at Microsoft.Rtc.Management.Deployment.Tasks.SetCertificateTask.Action() 
at Microsoft.Rtc.Management.Internal.Utilities.LogWriter.InvokeAndLog(Action action) 
 
   2014-10-22 오후 4:42:26   Error 
 └    Error: An error occurred: "System.InvalidOperationException" "Https binding not found on the website."   2014-10-22 오후 4:42:26   Error 

Step2였던 "Set Up Lync Server Components" 단계에서 "Lync Server External Web Site", "Lync Server Internal Web Site" 2개의 웹 사이트가 IIS에 등록되는데, 그 사이트들이 없으면 이런 오류가 발생합니다. 따라서, 서버를 재부팅하고 Step2 단계를 다시 실행해서 그 사이트들이 IIS에 생성되는 지 확인하고 나서 다시 Step 3를 실행하면 됩니다.




"Lync Server 2013 - Deployment Wizard"의 "Install or Update Lync Server System" 링크에서 "Step3" 인증서 구성 시 인증서 요청을 성공적으로 마치고 현재 서버에 OAuthTokenIssuer에 Assign 하는 단계에서 다음과 같은 오류가 발생할 수 있습니다.

> Assign Certificate

Set-CSCertificate -Identity Global -Type OAuthTokenIssuer -Thumbprint 8F154D71031FB3867DDC2F1D4553547DCFA0565B -Confirm:$false -Report "C:\Users\[사용자계정]\AppData\Local\Temp\Set-CSCertificate-[2014_10_23][13_52_08].html"
 WARNING: Set-CSCertificate failed.
 WARNING: Detailed results can be found at "C:\Users\[사용자계정]\AppData\Local\Temp\Set-CSCertificate-[2014_10_23][13_52_08].html".
Command execution failed: The private key of the certificate is not marked exportable and cannot be stored in the central management store.

Error: The private key of the certificate is not marked exportable and cannot be stored in the central management store. 
▼ Details 
└ Type: CertificateException 
└ ▼ Stack Trace 
    └   at Microsoft.Rtc.Management.Deployment.Core.Certificate.ExportCerts(X509Certificate2Collection certs) 
at Microsoft.Rtc.Management.Deployment.Core.Certificate.SetCMSCertificate(IScopeAnchor scope, X509Certificate2 foundCert, X509Certificate2Collection certs, Nullable`1 effectiveTime, Boolean isRoll) 
at Microsoft.Rtc.Management.Deployment.Core.Certificate.SetCMSCertificate(IScopeAnchor scope, String thumbprint, Nullable`1 effectiveTime, Boolean isRoll) 
at Microsoft.Rtc.Management.Deployment.Tasks.SetCertificateTask.Action() 
at Microsoft.Rtc.Management.Internal.Utilities.LogWriter.InvokeAndLog(Action action) 
 
└ ▼ Additional Details 
    └   Error: Key not valid for use in specified state.  
? Details 
└ Type: CryptographicException 
└ ? Stack Trace 
    └    
   2014-10-23 오후 1:52:09   Error 
 └    Error: An error occurred: "Microsoft.Rtc.Management.Common.Certificates.CertificateException" "The private key of the certificate is not marked exportable and cannot be stored in the central management store." 

이것은 이전 "Default certificate" 단계에서 Assign을 성공한 다음 곧바로 "OAuthTokenIssuer"에 대해 Assign 과정을 시도했기 때문입니다. 그렇게 하면 안되고, 반드시 "Step3"의 첫 단계로 돌아가서 "OAuthTokenIssuer"를 위한 인증서 요청 단계를 차례로 거친 후에 Assign을 해야 합니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 7/17/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  11  [12]  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13331정성태4/27/20233886오류 유형: 856. dockerfile - 구 버전의 .NET Core 이미지 사용 시 apt update 오류
13330정성태4/26/20233529Windows: 247. Win32 C/C++ - CS_GLOBALCLASS 설명
13329정성태4/24/20233732Windows: 246. Win32 C/C++ - 직접 띄운 대화창 템플릿을 위한 Modal 메시지 루프 생성파일 다운로드1
13328정성태4/19/20233402VS.NET IDE: 184. Visual Studio - Fine Code Coverage에서 동작하지 않는 Fake/Shim 테스트
13327정성태4/19/20233808VS.NET IDE: 183. C# - .NET Core/5+ 환경에서 Fakes를 이용한 단위 테스트 방법
13326정성태4/18/20235232.NET Framework: 2109. C# - 닷넷 응용 프로그램에서 SQLite 사용 (System.Data.SQLite) [1]파일 다운로드1
13325정성태4/18/20234526스크립트: 48. 파이썬 - PostgreSQL의 with 문을 사용한 경우 연결 개체 누수
13324정성태4/17/20234358.NET Framework: 2108. C# - Octave의 "save -binary ..."로 생성한 바이너리 파일 분석파일 다운로드1
13323정성태4/16/20234287개발 환경 구성: 677. Octave에서 Excel read/write를 위한 io 패키지 설치
13322정성태4/15/20235064VS.NET IDE: 182. Visual Studio - 32비트로만 빌드된 ActiveX와 작업해야 한다면?
13321정성태4/14/20233890개발 환경 구성: 676. WSL/Linux Octave - Python 스크립트 연동
13320정성태4/13/20233870개발 환경 구성: 675. Windows Octave 8.1.0 - Python 스크립트 연동
13319정성태4/12/20234318개발 환경 구성: 674. WSL 2 환경에서 GNU Octave 설치
13318정성태4/11/20234150개발 환경 구성: 673. JetBrains IDE에서 "Squash Commits..." 메뉴가 비활성화된 경우
13317정성태4/11/20234237오류 유형: 855. WSL 2 Ubuntu 20.04 - error: cannot communicate with server: Post http://localhost/v2/snaps/...
13316정성태4/10/20233565오류 유형: 854. docker-compose 시 "json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)" 오류 발생
13315정성태4/10/20233775Windows: 245. Win32 - 시간 만료를 갖는 컨텍스트 메뉴와 윈도우 메시지의 영역별 정의파일 다운로드1
13314정성태4/9/20233859개발 환경 구성: 672. DosBox를 이용한 Turbo C, Windows 3.1 설치
13313정성태4/9/20233937개발 환경 구성: 671. Hyper-V VM에 Turbo C 2.0 설치 [2]
13312정성태4/8/20233952Windows: 244. Win32 - 시간 만료를 갖는 MessageBox 대화창 구현 (개선된 버전)파일 다운로드1
13311정성태4/7/20234463C/C++: 163. Visual Studio 2022 - DirectShow 예제 컴파일(WAV Dest)
13310정성태4/6/20234062C/C++: 162. Visual Studio - /NODEFAULTLIB 옵션 설정 후 수동으로 추가해야 할 library
13309정성태4/5/20234229.NET Framework: 2107. .NET 6+ FileStream의 구조 변화
13308정성태4/4/20234123스크립트: 47. 파이썬의 time.time() 실숫값을 GoLang / C#에서 사용하는 방법
13307정성태4/4/20233887.NET Framework: 2106. C# - .NET Core/5+ 환경의 Windows Forms 응용 프로그램에서 HINSTANCE 구하는 방법
13306정성태4/3/20233679Windows: 243. Win32 - 윈도우(cbWndExtra) 및 윈도우 클래스(cbClsExtra) 저장소 사용 방법
1  2  3  4  5  6  7  8  9  10  11  [12]  13  14  15  ...