Skip to main content

OpenSSLをインストールして、アップデートする方法

OpenSSL を Ubuntu 16.04でインストールして、アップデートする方法

OpenSSLはSSLとTLSプロトコルのオープンソース実装です。OpenSSLをUbuntuデバイスでインストールし、アップデートすることはとても簡単であって、この記事はその点について触れています。

OpenSSLをインストールして、アップデートする

OpenSSLのインストールの前に、現在バージョンのOpenSSLを次のコマンドで調べてみましょう。

$ openssl version
OpenSSL 1.1.0h  27 Mar 2018

その後、OpenSSLの最新バージョンを次のコマンドでダウンロードします。左側のリンクをクリックして、適切なバージョンを選びます。openssl-1.xのフォーマットの中での最新版がお勧めですが、preが付いたのは正式反ではないので、問題発生の恐れがあります。

バージョンが低いのに、継続的に更新されているバージョンもありますが、これはLTSバージョンであって、今後アップデートをなるべく避けたいし、最新機能を必要としていない方にお勧めします。多分、Ubuntuのデフォルトバージョンなので、このようにするひゆ

원하는 항목을 브라우저에서 링크만 복사하여 아래 wget 명령 우측에 채워줍니다. 여기서는 openssl 1.1.1 pre7 버전을 설치하는 모습입니다.

$ cd /usr/src
$ wget https://www.openssl.org/source/openssl-1.1.1-pre7.tar.gz
--2018-06-19 08:49:17--  https://www.openssl.org/source/openssl-1.1.1-pre7.tar.gz
Resolving www.openssl.org (www.openssl.org)... 202.43.57.191, 2600:140b:5000:1af::c1e, 2600:140b:5000:1ab::c1e, ...
Connecting to www.openssl.org (www.openssl.org)|202.43.57.191|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8308876 (7.9M) [application/x-gzip]
Saving to: ‘openssl-1.1.1-pre7.tar.gz’

openssl-1.1.1-pre7.tar.gz   100%[=================================================>]   7.92M  4.00MB/s    in 2.0s

2018-06-19 08:49:26 (4.00 MB/s) - ‘openssl-1.1.1-pre7.tar.gz’ saved [8308876/8308876]

다운로드가 완료되면, 다운 받은 압축 파일을 다음과 같이 풀어줍니다.

$ tar -zxf openssl-1.1.1-pre7.tar.gz

수동으로 컴파일하기 위한 준비 작업이 필요합니다. 다음 명령으로 빌드 도구를 설치해주세요. 아래 명령에 파일을 찾을 수 없다는 오류가 발생하면, 우선 우분투 패키지 업데이트부터 실시합니다.1

$ sudo apt install build-essential

이어서 OpenSSL 컴파일 후 설치 및 업그레이드를 하기 위해서 다음 명령을 사용합니다. cd 명령어 뒤에 디렉토리명은 정확해도 되지만, 여기서는 편의를 위해 와일드카드로 간편하게 들어갔습니다. 둘 이상 존재한다면, 정확한 디렉토리명을 지정해주세요.

$ cd openssl*
$ ./config

참고로 위 ./config 대신 ./Configure --help를 참고하여 원하는 옵션을 더 넣을 수 있습니다. 특정 Cipher는 기본적으로 빠져있어서 이런 작업을 미리 해둬야 설치 후 사용 가능한 경우도 있습니다. 보통의 경우 위 명령으로 충분합니다.

이 작업이 끝나면, make 명령으로 OpenSSL의 설치를 준비합시다.

$ make

컴파일이 다 끝나면, make test 명령을 쳐줍니다.

$ make test

다양한 평가 항목이 완료되면, 루트 권한을 갖고 install을 시작합니다.

$ sudo make install

에러에 대한 언급이 없다면, 성공적으로 설치된 것입니다.

아래는 오류 발생시 따라합니다.

여기서부터 링크를 잘 걸어야 잘 실행할 수 있습니다. openssl 명령 실행시 error while loading shared libraries: libcrypto.so.1.1 등의 오류가 발생할 수 있습니다. libssl.so 또한 마찬가지입니다. 이 때 libcrypto.so와 libssl.so를 /usr/lib/usr/local/lib에 위치한 파일을 향하게 심볼릭 링크를 만들어야 합니다. 각 경로에 들어가서 파일이 (그것도 링크가 아닌 실행 가능한 파일로서) 실존하는지 확인합니다. 기존에 존재하던 예전 버전의 쓰레기가 있다면 제거합니다.

$ sudo rm /usr/lib/libcrypto.so*
$ sudo rm /usr/lib/libssl.so*
$ sudo ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so
$ sudo ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so
$ sudo ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
$ sudo ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1

그리고 방금 설치한 openssl이 bin 폴더에 바로 저장될 수도 있지만, 다른 곳에 만들어졌을 수 있습니다. 위 make install에서 bin 파일이 어디 만들어졌는지 확인하고, 원래의 openssl을 치워버리고 링크해야 합니다.

$ sudo mv /usr/bin/openssl /root/
$ sudo ln -s /usr/local/bin/openssl /usr/bin/openssl

간단한 설치와 업데이트 방법이죠? OpenSSL은 기본적인 암호화 기능과 다양한 유틸리티 기능을 제공합니다. https 서비스 연결, ssh 터미널에도 쓰입니다. 또한, 명령줄을 통해 온라인 인증서에서 정보를 검증하고 추출하는데도 쓰일 수 있습니다.

사견으로, 빌드 난이도는 nginx보다도 낮은, 무척 쉬움에 속하며 아무래도 종속성이 낮은 원시 코드에 가까워서 그런 것 같습니다. 그러나 시스템 설치 단계에서 기존 버전과 충돌을 처리하는 방법에서 고민해야하는 부분이 많으므로, 시스템 백업을 사전에 한 후 도전하길 강력하게 권합니다.

Footnotes

  1. $ sudo apt-get update
    $ sudo apt upgrade

Jinbaek Lee

일본 외노자입니다.

2 thoughts to “OpenSSLをインストールして、アップデートする方法”

  1. 패키지 설치하다가 의존성문제가 있어서 몇 일 고생하다가 안되어서 에러 내용을 자세히 들여다보니 ‘openssl: not found’ 에러가 보이더군요.
    그래서 여기서 안내해 준 데로 openssl 을 설치하고 나니 모든 것이 모든 문제가 해결되었습니다.
    오늘도 안되면 우분투 새로 깔려고 했는데, 너무 기뻐서 댓글 남깁니다. 감사합니다.
    참고로 위의 명령에서 저의 경우에 안맍는 경우가 있더군요.

    $ wget https://www.openssl.org/source/openssl-1.1.1-pre7.tar.gz –> ‘–no-check-certificate’ 옵션을 줘도 안되어서 그냥 웹브라우저 창에서 직접 주소입력하면 ~/Downloads 위치로 다운로드 됩니다. 이를 $sudo mv ~/Downloads/openssl* /usr/src 로 해서 옮깁니다.

    $ sudo apt install build-essential 이 부분도 조금 이상한 메시지를 보내던데 그냥 무시하고 쭈욱 진행하니까 됩니다.

    ==== 아래는 제가 원래 패키지 깔다가 오류난 메시지입니다. =============
    Updating certificates in /etc/ssl/certs…
    /usr/sbin/update-ca-certificates: 186: /usr/sbin/update-ca-certificates: openssl: not found
    dpkg: error processing package ca-certificates (–configure):
    installed ca-certificates package post-installation script subprocess returned error exit status 127
    Errors were encountered while processing:
    ca-certificates
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    1. 무사히 해결되셨다니 축하드립니다.
      서버 OS 기준이므로 wget이 현재 폴더에 다운 시켜주고 진행하는 방식입니다.
      데스크톱 OS라면 브라우저가 있으니 한결 편하겠네요.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です