Network/OpenSSL

[OpenSSL] OpenSSL 공식사이트에서 설치 in 윈도우(Windows 11)

crypsec 2023. 10. 29. 12:01
반응형

설치를 위한 사전 준비 프로그램

만약 설치가 잘 안 되어 따라가기 어렵다면 <이 모든 과정이 힘들다면?>으로 가주세요.

Perl

먼저 perl 설치가 필요합니다. 저는 strawberry perl을 설치하겠습니다.
http://strawberryperl.com/

 

실행시 이런 메시지가 뜨실 수도 있는데

추가 정보를 누르면 실행 버튼이 생깁니다.

실행을 눌러 설치를 완료합니다.
cmd나 Windows PowerShell을 켜서 다음과 같이 입력해 보시기 바랍니다.

PS> perl -v

다음과 같은 메시지가 뜬다면 설치가 완료된 것입니다.

 

Microsoft Visual C compiler

 
Windows용 C 컴파일러가 필요합니다. 따라서 MinGW나 MSVC 등 취향에 맞는 컴파일러를 설치해 주시면 됩니다.
저는 MSVC를 사용하겠습니다.
 
MSVC(마이크로소프트 비주얼 C++)는 Microsoft의 C 및 C++ 컴파일러 및 개발 환경입니다. 
 
아마 Windows로 C/C++을 개발하신다면 개발 툴로 Visual Studio를 많이 사용하실겁니다. 이미 설치되어있다면 따로 설치 안 하셔도 됩니다.
 

MSVC를 설치하는 단계입니다.

 
자세한 다운로드 방법은 https://learn.microsoft.com/ko-kr/visualstudio/install/install-visual-studio?view=vs-2022 공식문서에서 확인 가능합니다.

  1. Visual Studio 설치 프로그램 다운로드:
    • 먼저, Visual Studio 다운로드 페이지에 접속합니다.
    • "Visual Studio 다운로드" 버튼을 클릭합니다. 일반 사용자는 커뮤니티 버전으로 하시면 됩니다.
  2. 설치 프로그램 실행:
    • 다운로드한 설치 프로그램(.exe 파일)을 실행합니다.
    • 일부 패키지를 다운로드하고 설치 프로세스가 시작됩니다.
  3. 설치 완료:
    • 설치가 완료되면 Visual Studio를 시작할 수 있습니다.
  4. MSVC 버전 확인:
    • Visual Studio를 열고 "도구" > "옵션" > "환경" > "C++" > "모든 구성 및 플랫폼"에서 MSVC 버전을 확인할 수 있습니다.

 

Netwide Assembler (NASM)

공식 사이트에 들어갑니다.

 

NASM

Latest version For users of RPM-based Linux distributions (e.g. Fedora, Red Hat, SUSE, ...), you can download the official NASM builds using dnf or yum by installing nasm.repo in your /etc/yum/yum.repos.d directory.

www.nasm.us

저는 Stable 2.16.01로 받겠습니다. 링크를 클릭해 줍니다.

많은 파일이 있는데 저는 win64/ 디렉터리로 들어가겠습니다. 제 컴퓨터는 64-bit 운영체제라 그렇습니다.

. exe 실행파일만 다운로드하여 실행하시면 됩니다.


OpenSSL 설치

 
공식 다운로드 사이트 - https://www.openssl.org/source/
저는 가장 최근에 나온 3.14 버전을 다운로드하여 보겠습니다. 빨간색 밑줄로 된 파일입니다.

OpenSSL 공식 사이트

이제 openssl 파일을 다운로드하고 압축을 풉니다.
 

위치

(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2022\Visual Studio Tools)

(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2022\Visual Studio Tools\VC)


이제 개발자 프롬프트를 실행합니다. Developer PoewrShell for VS 2022입니다. 검색을 통해 실행시키셔도 됩니다. 그게 아니라면 VC 디렉터리에서 32비트 버전과 64비트 버전 중 pc 환경에 맞는 걸로 실행시키면 됩니다. (관리자 권한으로 실행시켜 줍니다.)  저는 x64 Native Tools Command Prompt for VS를 사용했습니다.

Developer PowerShell
64비트 호스팅 개발자 명령 프롬프트

 

 

64비트, x64 대상에 대한 C++ 프로젝트 구성

자세한 정보: 64비트 x64 대상에 대한 C++ 프로젝트 구성

learn.microsoft.com

 
이제 cd 명령어를 통해 압축 해제한 openssl 디렉터리로 이동하고 아래 명령어를 입력합니다.

PS> perl Configure

Configure

잘 완료되었다면 아래 명령어를 입력해 줍니다.
 

PS> nmake

nmake Troubleshooting

더보기

Troubleshooting(x64 pc)

 

NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\bin\HostX86\x86\nmake.exe

 

nmake도 x86, x64 두 개로 나뉘어있는데 본인 pc환경과 맞는 걸 사용해줘야 합니다. nmake /?로 간단한 명령어 옵션을 볼 수 있고 저의 경우

"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\bin\Hostx64\x64\nmake.exe"

이 위치에 nmake.exe x64용 파일이 있습니다. 이게 한 개가 아니라 x86에도 있고 하니 어떤 걸 사용하느냐에 따라 오류가 생길 수 있다는 점 명심해 주세요.

 

nmake를 사용하여 64-bit 아키텍처로 빌드하려면, 명시적으로 64-bit 환경을 설정해야 합니다. 이를 위해 다음 단계를 따르세요:

64-bit Visual Studio 환경 설정:
   - 64-bit 빌드를 위해 64-bit Visual Studio 환경을 설정해야 합니다. 이를 위해 다음 스크립트를 실행하세요.
   
     "C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"

   - 위 스크립트는 64-bit 환경으로 설정된 Visual Studio 명령 프롬프트를 엽니다. 현재 2022 버전입니다.

 

이제 nmake를 사용하여 64-bit 대상으로 프로젝트를 빌드할 수 있습니다. Makefile이나 빌드 스크립트에는 64-bit 대상을 사용하도록 구성되어야 합니다.

빌드 명령 실행:
   - 예를 들어, Makefile을 사용하여 빌드한다면 다음과 같이 실행할 수 있습니다.
 
     nmake /f Makefile

 

OR 

위의 방법이 안된다면 두 번째 방법으로

 

nmake - 'x86' 모듈 컴퓨터 종류가 'x64' 대상 컴퓨터 종류와 충돌합니다.

https://stackoverflow.com/questions/67627555/openssl-fatal-error-lnk1112-module-machine-type-x86-conflicts-with-target-mac

 

OpenSSL fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64

I'm encountering a very frustrating error while trying to build OpenSSL on Windows 10. The error I get is "lib" /nologo /out:providers\libdefault_static.lib @C:\Users\jcava\AppData\Local\...

stackoverflow.com

이건 그냥 x64 Native Tools Command Prompt for VS 사용하거나 등의 답변

빌드 완료 후 실행

PS> cd apps && openssl.exe

실행결과

이제 아래 명령어를 통해 Program Files라는 로컬 디스크 아래 있는 폴더에 OpenSSL 폴더를 생성시킬 겁니다. 이 과정은 굳이 필요하진 않은데 그냥 Configure 할 때 저희가 따로 옵션으로 설치 위치를 선정하지 않았기 때문에 default로 설정된 위치로 파일들을 옮겨주는 과정이라고 생각하면 됩니다.

더보기

"make install"은 소프트웨어를 소스 코드로부터 컴파일하여 시스템에 설치하는 단계입니다. 이는 일반적으로 오픈 소스 프로젝트나 소프트웨어 패키지를 빌드하고 설치하는 과정에서 사용됩니다.

보통 다음과 같은 단계로 진행됩니다:

1. 소스 코드 다운로드: 소스 코드를 다운로드하고 압축을 해제합니다.

2. 빌드: "make" 명령어를 사용하여 소스 코드를 컴파일합니다. 이는 소스 코드를 바이너리 실행 파일로 변환하는 과정입니다.

3. 설치: "make install" 명령어를 사용하여 컴파일된 실행 파일과 관련 파일들을 시스템에 설치합니다.(복사하여 이동시킵니다.) 이는 일반적으로 바이너리 파일들을 적절한 디렉터리에 복사하고, 라이브러리 파일들을 올바른 위치에 설치하는 등의 작업을 수행합니다. 

이 과정은 주로 리눅스나 유닉스 기반 시스템에서 사용되며, 일반적으로 프로젝트의 README 파일이나 설치 가이드에 자세한 정보가 포함되어 있습니다.

PS> nmake install

실행 결과는 아래와 같고 bin 폴더로 가보면 실행파일이 있습니다.

OpenSSL 라이브러리들과 실행파일이 있습니다.

이제 설치가 완료되었습니다. 제어판의 시스템 환경변수 편집을 통해 openssl을 어디서든 PowerShell로 실행가능하며 아래에 정리해 두었습니다.


이 모든 과정이 힘들다면? 

그냥 뭐 이것저것 설정하기 귀찮다면 여기서 설치하고 싶은 openssl 버전, x64 or x86 선택한 후. exe 파일 그냥 다운로드해서 설치하면 됩니다.

https://slproweb.com/products/Win32OpenSSL.html

 

Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

Minimum system requirements: Windows XP or later 32MB RAM 200MHz CPU 30MB hard drive space Recommended system requirements: Windows XP or later 128MB RAM 500MHz CPU 300MB hard drive space March 14, 2023 - OpenSSL 3.1 is available. Also, Happy Pi Day. Users

slproweb.com



설치는 이걸로 너무 쉽게 되어서 옵션 같은 건 잘 읽어보시고 설치하시면 됩니다. 모르겠으면 그냥 기본 선택으로 설치해 주시면 됩니다.

 

그런데 설치했다고 그냥 PowerShell 켜서 openssl 명령어 아무리 쳐도 설치된 실행파일 경로를 컴퓨터에게 알려주지 않으면 특정 위치에서만 실행이 가능합니다. 따라서 어느 위치에서든지 openssl 명령어를 사용할 수 있게 환경변수 편집을 해주셔야 합니다.
 
제어판의 시스템 환경변수 편집으로 들어갑니다.

환경 변수를 클릭하고

Path(경로)에 openssl 실행 파일의 위치를 넣어줄 겁니다.

특별히 설치 위치를 바꾸지 않았다면 저 bin 디렉터리 위치에 openssl 실행파일이 설치되어 있습니다.
 

반응형