흐음.. 맥을 쓰다 보니깐... 맥에서 지원되는 포멧인 exFAT로 외장하드를 포멧했었다. 

그러다 보니 급 문제가 생긴것이 SynologyNAS에 백업하려고 했드만... 바로 마운트가 안되네...

급하게.. 방법을 찾아봤다. 

1. ntfs 는 마운트 하는 명령어가 동작하는데... 그것으로는 exFAT 마운트가 안된다. 

ntfs-3g /dev/sata2p1 /volume1/ADD1

2. 그래서 급하게 설치를 했다. 

#!/bin/sh

wget -P /tmp/ http://ftp.de.debian.org/debian/pool/main/f/fuse-exfat/exfat-fuse_1.3.0-2_amd64.deb

dpkg -x /tmp/exfat-fuse_1.3.0-2_amd64.deb /tmp/exfat-fuse/

cp /tmp/exfat-fuse/sbin/mount.exfat-fuse /usr/bin/

위처럼 설치용 shell을 하나 만들어서 돌려주고...  다음과 같은 방법으로 마운트를 해준다. 

# mount.exfat-fuse /dev/sata2p1 /volume1/ADD1

 

 

뭐 당연한 이야기 겠지만... sudo 권한 필요하고, nas에 ssh 활성화 시켜서 terminal 접근 가능해야 겠고....

백업 끝나면, "umount {$mount_path}" 로 마운트 해제하면 되겠고....

 

아.. hdd 정보 어떻게 찾았냐고??? "blkid" 명령어 치면 됨....

centos 최신버전을 설치할 일이 생겼다. 

장비는 장만했고, centos 8 도 설치가 되었다. 

그럼 설치를 한번 해볼까?

0. 버전 확인

$ cat /etc/*-release
CentOS Linux release 8.1.1911 (Core)
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"

CentOS Linux release 8.1.1911 (Core)
CentOS Linux release 8.1.1911 (Core)

1. Docker 설치 

1-1. yum update

$ sudo yum update

1-2. docker 설치 및 docker-compose 설치

$ sudo yum install docker-ce-18.06.3.ce-3.el7
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod 755 /usr/local/bin/docker-compose

1-3. activate docker by systemctl

$ sudo systemctl enable docker 
$ sudo systemctl start docker 
$ sudo systemctl is-activate docker

1-4. check docker

$ sudo docker ps -a

1-5. 유저 추가

docker를 사용할 때 항상 root 계정이 필요하다면, 사용이 불편하기도 하고, 관리도 용이하지 않은 관계로, docker 그룹에 내 계정을 추가하여 사용하도록 하자

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ sudo reboot

 

아쉽게도 적용을 위해서는 서버를 재시작 해야 하드라.... 

갑자기 프로젝트를 하기 위해 파견을 나오게 되었다. 

할수 있는것은 아무것도 없고, 시스템 설계해 주시는 수석님과 나 둘이서 일단 프로젝트 하기 위한 준비를 해야만 한다. 

뭐... 어쩌겠는가.. 까라면 까는 IT 개발 종사자의 인생이란... 뭐... 하라면 해야지..

근데 수석님이 git을 싫어하신다고 한다. (하긴 안써보던거 쓰려면 힘드실 꺼야... 내가 이해하자. 그래 내가...)

이렇게 난 보살이 되어가고....

1. Docker 설치 

일단 프로젝트를 급하게 처리하기 위해 본사에서 놀고 있는 노트북에 ubuntu18.04.4 LTS를 최소버전으로 설치해서 준비하였다. 그럼 이제부터 설치를 해보도록 하자.

$ sudo apt-get install -y docker docker-compose

이번에 docker 설치할 때 docker-compose를 같이 설치하는 이유는 언제까지고 docker 실행파일을 .sh로 만들어서 관리할 수는 없잖아.... (귀찮아귀찮아)

 

2. yona와 mariadb를 한번에 설치

사실 yona나 mariadb는 os에 그냥 설치해도 된다. 근데 프로젝트하다가 장비가 없어질 수도 있고... 인생사는 어떻게 될지 모르는 거잖아... 

가끔씩 백업도 해주고 그래야 회사 자산이 될텐데... (지금 다니는 회사는 그런거에 대한 개념이 희박하다... 정말 파견전문업체....)

그렇다면 개발자라도 백업을.... 쿨럭...

일단 docker-compose도 깔았겠다. docker-compose.yml을 준비해 보자.

docker-compose.yml
version: '3.1'
services:
  yona-mariadb:
    image: witbox/yona-mariadb-10.2-bionic
    container_name : yona-mariadb
    restart: always
    networks:
    - yona
    environment:
      MYSQL_DATABASE: yona
      MYSQL_USER: yona
      MYSQL_PASSWORD: my_password 
      MYSQL_ROOT_PASSWORD: my_password
    ports:
    - "3306:3306"
    volumes:
    - /data/mysql:/var/lib/mysql

  yona:
    image: witbox/yona-1.12.0-alpine
    restart: always
    container_name : yona
    ports:
    - "9000:9000"
    - "465:465"   # smtp
    networks:
    - yona
    depends_on:
    - yona-mariadb
    environment:
      YONA_DATA : /yona/data
    volumes     :
    - /data/yona/data:/yona/data

  adminer:
    image: adminer
    container_name: yona_adminer
    restart: always
    networks:
    - yona
    ports:
    - 9001:8080
networks :
  yona :

개뿔 없다. 그냥 복사해서 붙여 넣으면 끝이다. 

사실 출처(https://repo.yona.io/yona-projects/yona/issue/50) 에서 준 파일로 그대로 한방에 되면 정말 좋겠지만.... 안되더라... 슬픈 현실이지.. 나두 안되서 이것저것 많이 시도해 봤으니까... 그래도 안되면 문의 남겼겠지만..... 일단 내가 해결해 봐야 시간이 잘가지.... (그리고 일하는 것처럼 보일라나???)

근데 개인적으로 내 패스워드는 나만 썼으면 좋겠다... 쫌.... 친절하게 굵은 글씨로 해놨으니... 제발 나랑 똑같이 쓰진 말자. 

이렇게 파일을 어떻게 만드느냐? 이것도 귀찮잖아. 그러니깐.... 내가 친절히 스크립트를 공유함. 

$ sudo mkdir -p /data/yona/data
$ sudo mkdir -p /data/mysql
$ sudo chmod 555 -R /data
$ cd ~ 
$ mkdir mariadb-yona
$ cd mariadb-yona
$ touch docker-compose.yml

요로코롬... 먼저 디렉토리를 준비해 주자. 

그리고 docker-compose.yml은 여기다가 만들어 주자. 

/data 디렉토리는 당신의 linux에 없을수도 있다... 참고하시고... 가능하면 스토리지 마운트 같은거 해서 쓰면... 좀더 os와 independent 하게 관리할 수 있지 않을까? (아 그러고 보니까.. mysql은 사고나면, lock 파일때문에 동작 안한다... 그건 알아서... 처리하도록하자...)

나머지 스크립트. 

$ sudo docker-compose up -d

3. 이제 잘 되면.... 당신은 이글을 찾지 않았겟지...ㅋ

맞다. 나도 여기서 또 안되더라...

어떻게 안되느냐? 바로 yona가 계속 restart 한다는 의미다. 

Docker에서 yona가 안뜨는 것은 다음을 통해 확인된다. 

$ sudo docker ps -a

뭐 안되는 이유는 알아야 조치를 할테니....

yona의 프로세스 로그를 확인하기 위해서 다음을 확인해 본다. 

$ tail -f /data/yona/data/logs/root.log

2020-03-25 11:36:27,021 - [ERROR] - from com.jolbox.bonecp.hooks.AbstractConnectionHook in main
Failed to obtain initial connection Sleeping for 0ms and trying again. Attempts left: 0. Exception: org.mariadb.jdbc.internal.util.dao.QueryException: Could not connect to address=(host=127.0.0.1)(port=3306)(type=master) : Connection refused (Connection refused).Message:Could not connect to address=(host=127.0.0.1)(port=3306)(type=master) : Connection refused (Connection refused)

나와 같은 로그가 나온다면... 그건... DB에 연결안된다는 의미인거지....

근데 DB 설정은 어디서 확인이 가능하느냐? 그건 /data/yona/data/conf/application.conf 에서 확인이 가능하다. 근데... 별 문제가 없어 보인다. 하지만... 이것을 해결하기 위해서는 다음을 기억해야 한다. 

이전에 mysql 시절 localhost 주소에 접근하기 위해서는 my.conf 파일을 변경했던 당신... 기억나는가? 

그때 기억은 나중에 검색하도록 하고.... 난 loopback 주소를 쓰지 않고, 직접 장비의 주소를 입력하는 것을 문제를 해결했다. 

/data/yona/data/conf/application.conf 

내 주소가 192.168.0.6 이다. 본인 pc의 ip는 직접 찾아 보시고... 나처럼 고쳐주면... docker yona는 알아서 restart 중이니... 알아서 재시작 하게 될 것이다. 근데 생각보다 초기 설정되는데 시간이 많이 걸리니깐... 안된다고 좌절하지 말고. 로그를 계속 지켜보자. 

 

4. 이렇게 설치가 완료되었다. 

정상적으로 yona가 구동되려면 docker yona를 재시작 해주어야 한다. 설마.... 

$ sudo docker restart yona

그렇다 당신은 이조차도 귀찮아 할 수 있으니.... 

 

이렇게 하고 관리자 설정 조금 해주면.... 또 안되겠지? 헤휴...

$ sudo ufw allow 9000

그렇다.... 방화벽....

방화벽 오픈 해주면... 대충 이제 사용이 가능할 것이다. 

내 글이 당신에게 도움이 되었으면 좋겠다. 

그리고 도움이 되었다면.. .댓글정도만이라도 남겨줘라... 인간적으로다가....

 

백수 생활한지 어언 1달이 넘어가고 있다.  
요즘 핫한 드라마는 역시 왕좌의 게임 시즌 8 
근데 집에 있는 pc에서 스마트tv로 당연히 미라케스트가 되겠지라고 생각했던 것중에 안되는 것이 생각보다 많이 있더라... 

특히 짜증 나는 것중에 하나인 mkv는 지원 안한다는 소리... 
그리고 자막 파일을 지원 안한다는 이야기는 왜이렇게 많은 것인지.....  

 그래서 오늘은 ffmpeg을 이용하여, 영상 파일 확장자를 변경하는 작업과 자막을 랜더링 처리한 컨텐츠를 만드는 것에 대해서 알아 보도록 하자... 

0. mkv to mp4

문제의 mkv 파일을 mp4로 변환해 보자.

일단 문제가 되는 것은 일반인(그냥 컨텐츠를 사용하는 유저) 입장에서는 영상이 어떻게 생겨 먹었는지 전혀 알 필요가 없다. 그냥 용량이 큰게 영상 품질도 좋겠지라고 생각한다.

하지만 생각보다 영상의 세계는 심오하여서... 귀찮게도 컨텐츠를 배포하는 업체(Content Delivery Network : CDN)나 컨텐츠를 제공하는 서비스(youtube, netflix, tving, 옥수수 등등등)에서는 영상을 품질별로 확인, 분류, 제공을 위한 매카니즘이 매년 새로운 것이 나온다고 볼 수 있을 정도로 다양하게 나온다.

각설하고....(뭔가 다 설명하려고 하니깐... 글이 엄청 길어질 것만 같은 느낌이 온다.)

영상이나 mp4로 변환하도록 하자. 

대충 보아하니, video는 h.264에 비트레이트가 약 7500kb/s 짜리 영상이다. 그리고 오디오가 eac3 구만...

역시 이런 영상은 미라캐스트 지원따윈 안되겠지.... 

미라캐스트가 지원되는 형태로 변환을 해 보도록 하자. 

>  ffmpeg -y -threads 6 -i input.mkv -vcodec copy -acodec aac input.mp4

본인의 pc는 옥타코어(엄청 예전에 샀던 발열의 신 비쉐라 되시겠다... (어후.. 거의 10년 쓰고 있는 느낌이야...)

어익후... 아직도 이런 pc 쓰는 사람이 바로 나야나!!!

그러니... 빠르게 영상을 편집하기 위해서는 불필요한 스트림에 대해서는 인코딩 하지 않고, 오디오만 인코딩을 하도록 하자.. (노친네같은 amd cpu를 분노케 하면, 백수 지갑이 매우 힘들어진다. )

대충 스크린샷 설명을 보면, Stream #0:0 은 video 부분으로 기존에 있는 h264 설정을 그대로 사용한다는 의미, Stream #0:1은 audio 부분으로 기본의 eac3 를 aac로 변경한다는 의미이다. 

일단 해당 설정으로 ffmpeg을 돌리면, h264, aac 를 가진 mp4 영상이 나오게 된다. 

재생 잘 되는지 확인해 보자...

> ffplay -vf subtitles=input.srt input.mp4

ffplay도 자막을 뿌려줄 수 있으니... 자막까지 한번에 확인해 보도록 하자. 

...더보기

 

잘... 재생됨... 그나저나 대너리스는 정말.......읍읍읍 (전 아무말도 안했습니다.)

(흠.. 귀찮으니.. 이 다음은.... 그만 알아보도록 하자....)

는 훼이크다..ㅋㅋㅋㅋ

 

 

 

 

1. smi to srt 파일 변환

 https://smisrt.com/

 

SRT SMI 자막 변환기

SRT SMI 미드 자막파일 검색자료 인코딩 편집, 속도 변환 다운로드 사이트

smisrt.com

일단 구한 자막 파일이 smi 파일인 것은 함정...

 자막파일 형태중에 너무 많이 쓰는 smi 파일 포멧 이지만, 사실 개발자 입장에서는 굉장히 피곤한 포멧이기도 하다. 내부 규격이 확정된 것이 없고, html 확장된 듯한 포멧이기 때문에 video randering 하는 플레이어가 어떻게 구현되었느냐에 따라 재생이 될때도 있고 안될때도 있는 파일 포멧이다. 

사람들이 많이 쓰거나, blue-ray, dvd에서 사용하는 포멧으로 살짝 변환을 해 보도록 해 보자. 

스크린샷 찍은것은 접어놓았으니... 펼쳐서 보시면 되시겠다. 

...더보기

 

1) 사이트에 접속후

 

2) 파일을 선택하고
3) smi->srt로 변환하기. 인코딩은 나와있는 거의 대부분의 smi 파일이 euc-kr이므로 utf-8로 변환해 준다.  자막에 싱크 조정이 필요한 경우에는 싱크조정을 설정해주고, 필요없는 경우 "0"을 적어주자
4) 하단에 변환해서 다운로드 버튼을 누르면, 처리 완료 (사이트를 어떻게 만들었는지 나중에 확인해 보도록 하자)

2. srt to ass

두번째 단계는 srt 파일을 ass 파일 포멧을 변환하는 과정이다.  .ass 파일 포멧으로 변환되어야 ffmpeg에서 자막을 영상에 입힐 수 있다. 

- ffmpeg 을 이용한 ass 포멧 변환

ffmpeg -i input.srt output.ass 

별건 없다.... 스크린샷 참고

 

3. encoding video

- ffmpeg을 이용하여 파일 생성.

ffmpeg -i INPUT.mp4 -vf subtitles=INPUT.SRT OUTPUT.MP4
...더보기

실행 예제 스크린샷이 없는것은 죄송. 

이렇게 만든 OUTPUT.MP4 파일을 가지고 smart-tv에서 미라캐스트를 이용하여 재생하면, 영상 잘 나옴. 

ps. (왜인지 모르겠으나, .ass 파일을 만들지 않아도 될 꺼 같은 느낌은 든다. 


1. 문제의 시작


잘 운용되고 있던 통계 로그 서버가 갑자기 먹통이 되었다. 

사실 전부 인수인계 되어있던 건데.... 갑자기 안된다는 메일이 한통 딱 날라왔다. 


뭔가 작업을 했으면 작업을 했었다... 그래서 안된다. 이런식으로 메일을 써 주면 좋으련만, 자기들 원하는 대로만 메일을 쓰지.....


일단 2월부터 통계 데이터가 없다고 하니, 해당 날짜부터 무슨 일이 있었는지 확인을 해보자..


2. 처음 보는 에러 로그

해당 로그는 다음과 같았다. 

sendBatchLog|HTTP Send error|sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target


흐음.. 느낌상으로는 https 로 통신하는데 문제가 있는것으로 보인다. 


3. https 통신 여부 확인하기. 


일단 os level에서 정상적으로 해당 데이터를 가지고 올 수 있는지 확인해 보았다. 

하지만 결과는 참담했다. 


1) 해당 장비에는 curl 이 깔려 있지 않았고, 

2) wget으로 페이지를 다운로드를 받으니, dns에서 해당 url을 찾을 수 없댄다. 

3) 게다가 apt-get으로 curl 같은 것을 다운로드 받을 수도 없다. 


일단 하나씩 해결해 보자. 


문제의 장비 정보

$ cat /etc/issue

Ubuntu 12.04.5 LTS \n \l


일단 apt-get을 사용할 수 있도록 해보자. 

기존에는 /etc/apt/source.list 에 ubuntu repository 주소가 다음과 같이 되어 있었다. 

http://kr.archive.ubuntu.com/ubuntu/

적절하게 백업뜨고 다음과 같이 변경해 주자. 


# cp /etc/apt/sources.list /etc/apt/sources.list.bak

# cat /etc/apt/sources.list | sed -e 's/http:\/\/kr.archive.ubuntu.com\/ubuntu\//http:\/\/ftp.daumkakao.com\/ubuntu\//g' > /etc/apt/sources.list


하지만 이게 잘 되면 얼마나 좋으련만....

dns 서버 문제가 있는것 같다. 

ftp.daumkakao.com을 못찾는다....


일단 static 으로 구성된 network환경을 확인해 보자


# vi /etc/network/interfaces

~

dns-nameservers 192.168.0.1

역시나 dns-nameservers 가 없다. 추가한 뒤에 파일을 수정해 준다. 

해주는 김에 /etc/resolv.conf 도 추가해 준다. 

# vi /etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

nameserver 192.168.0.1

그 다음엔 깔끔하게 장비 reboot를 해 주자 

# reboot

reboot가 끝이 나고, 정상적으로 dns 서버가 동작하는 것을 확인했다. 

하는 김에 apt-get update 도 진행해줌

$ sudo apt-get update

잘 된다....


4. 문제의 서버에는 역시 접근이 안된다. 

https로 된 문제의 서버에는 self signed certificate 라는 이유의 에러 메시지를 뱉어내며 정상 동작을 하지 않는다... 

google 신의 도움으로 다음과 같이 업데이트를 진행해 준다. 

# update-ca-certificates -f

ref. http://manpages.ubuntu.com/manpages/cosmic/en/man1/c_rehash.1ssl.html


일단 wget, curl로 발생하던 에러는 드디어 사라졌다. 


5. java에서는 아직도 동일한 에러가 발생한다. 


이거가 뭔 일이냥? 

다시 또 검색을 해 보았다. 


ref. https://www.lesstif.com/pages/viewpage.action?pageId=12451848


상기 사이트에서 나온 결론은 다음과 같다. 

1) java keystore 상에 해당 CA 인증서 정보가 없다. 

2) 그렇기 때문에 https 사이트에 대해서 PKIX 에러가 발생되는 것이다. 

3) java default path에 있는 cacert에 문제의 인증서를 추가해 주자.


잘 정리하신 분이 계시길래.... 일단 따라해 보도록 한다. 


6. 변경 작업 시작


혹시라도 저 파일이 없어질 수도 있으니.. 다운을 받아봄..

InstallCert.java


$ curl -O https://gist.githubusercontent.com/lesstif/cd26f57b7cfd2cd55241b20e05b5cd93/raw/InstallCert.java

$ javac InstallCert.java

-bash: javac: command not found


아나... javac 이 없다고 합니다 그렇다면... 

심볼릭 링크를 걸어서 javac을 쓰도록 하자...

$ java -version

java version "1.8.0_161"

Java(TM) SE Runtime Environment (build 1.8.0_161-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

$ which java

/usr/bin/java

$ ll /usr/bin/java

lrwxrwxrwx 1 root root 26 Feb 19  2018 /usr/bin/java -> /opt/jdk1.8.0_161/bin/java

$ sudo ln -s /opt/jdk1.8.0_161/bin/javac /usr/bin/javac

$ javac InstallCert.java

음... 이제 돌아가는구만... 

그렇다면.. 문제의 사이트에서 인증서를 가져오도록 합니다. 


$ java -cp ./ InstallCert sample.kkus.com

Loading KeyStore /opt/jdk1.8.0_161/jre/lib/security/cacerts...

Opening connection to sample.kkus.com:443...

Starting SSL handshake...


javax.net.ssl.SSLException: java.lang.UnsupportedOperationException

        at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)

        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1959)

        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1916)

        at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1899)

        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1420)

        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)

        at InstallCert.main(InstallCert.java:116)

Caused by: java.lang.UnsupportedOperationException

        at InstallCert$SavingTrustManager.getAcceptedIssuers(InstallCert.java:187)

        at sun.security.ssl.AbstractTrustManagerWrapper.checkAlgorithmConstraints(SSLContextImpl.java:1098)

        at sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust(SSLContextImpl.java:1044)

        at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:986)

        at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1596)

        at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)

        at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052)

        at sun.security.ssl.Handshaker.process_record(Handshaker.java:987)

        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072)

        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)

        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)

        ... 2 more


Server sent 3 certificate(s):


 1 Subject CN=sample.kkus.com, OU=InstantSSL, OU="Hosted by Korea Information Certificate Authority, Inc.", OU=IT, O=kkus Corporation, L="Bundang-gu, Seongnam-si", ST=Gyeonggi-do, C=KR

   Issuer  CN=COMODO RSA Organization Validation Secure Server CA, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB

   sha1    72 54 e2 76 7e 5d 8a 64 92 48 81 b6 68 f1 14 ef 8b 95 6c 9a

   md5     ce 0a dd e9 20 c0 ea 57 07 5c 09 a8 64 8e 8f bb


 2 Subject CN=COMODO RSA Organization Validation Secure Server CA, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB

   Issuer  CN=COMODO RSA Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB

   sha1    10 4c 63 d2 54 6b 80 21 dd 10 5e 9f ba 5a 8d 78 16 9f 6b 32

   md5     91 29 73 32 12 d5 f5 65 18 64 d8 6b 7b ae 0b 98


 3 Subject CN=COMODO RSA Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB

   Issuer  CN=COMODO RSA Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB

   sha1    af e5 d2 44 a8 d1 19 42 30 ff 47 9f e2 f8 97 bb cd 7a 8c b4

   md5     1b 31 b0 71 40 36 cc 14 36 91 ad c4 3e fd ec 18


Enter certificate to add to trusted keystore or 'q' to quit: [1]

2

여기서 2를 선택한 이유는 문제의 사이트에서 CA 인증서만 필요하기 때문입니다. 

root 인증서를 집어 넣어도 되지만... 난 그냥.. 되기만 하면 되니깐, CA 인증서만.... 


[

[

  Version: V3

  Subject: CN=COMODO RSA Organization Validation Secure Server CA, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB

  Signature Algorithm: SHA384withRSA, OID = 1.2.840.113549.1.1.12


  Key:  Sun RSA public key, 2048 bits

  modulus: ....

  public exponent: 65537

  Validity: [From: Wed Feb 12 09:00:00 KST 2014,

               To: Mon Feb 12 08:59:59 KST 2029]

  Issuer: CN=COMODO RSA Certification Authority, O=COMODO CA Limited, L=Salford, ST=Greater Manchester, C=GB

  SerialNumber: [    36825e7f b5a48193 7ef6d173 6bb93ca6]


Certificate Extensions: 8

[1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false

AuthorityInfoAccess [

  [

   accessMethod: caIssuers

   accessLocation: URIName: http://crt.comodoca.com/COMODORSAAddTrustCA.crt

,

   accessMethod: ocsp

   accessLocation: URIName: http://ocsp.comodoca.com

]

]


[2]: ObjectId: 2.5.29.35 Criticality=false

AuthorityKeyIdentifier [

KeyIdentifier [

....

]

]


[3]: ObjectId: 2.5.29.19 Criticality=true

BasicConstraints:[

  CA:true

  PathLen:0

]


[4]: ObjectId: 2.5.29.31 Criticality=false

CRLDistributionPoints [

  [DistributionPoint:

     [URIName: http://crl.comodoca.com/COMODORSACertificationAuthority.crl]

]]


[5]: ObjectId: 2.5.29.32 Criticality=false

CertificatePolicies [

  [CertificatePolicyId: [2.5.29.32.0]

[]  ]

  [CertificatePolicyId: [2.23.140.1.2.2]

[]  ]

]


[6]: ObjectId: 2.5.29.37 Criticality=false

ExtendedKeyUsages [

  serverAuth

  clientAuth

]


[7]: ObjectId: 2.5.29.15 Criticality=true

KeyUsage [

  DigitalSignature

  Key_CertSign

  Crl_Sign

]


[8]: ObjectId: 2.5.29.14 Criticality=false

SubjectKeyIdentifier [

KeyIdentifier [

....

]

]


]

  Algorithm: [SHA384withRSA]

  Signature:

....


]


Added certificate to keystore 'jssecacerts' using alias 'sample.kkus.com-2'

좀 은밀한 것은 가렸음... 


이제 추출 작업은 끝났으니.... 파일이 제대로 있는지 확인


$ ls

InstallCert.class  InstallCert.java  InstallCert$SavingTrustManager.class  jssecacerts

일단 추출을 해 봅니다. 


$ keytool -exportcert -keystore jssecacerts -storepass changeit -file output.cert -alias sample.kkus.com-2

-bash: keytool: command not found

오 지쟈스... 

우울하구만... 또 symbolic link다 

$ sudo ln -s /opt/jdk1.8.0_161/bin/keytool /usr/bin/keytool

$ keytool -exportcert -keystore jssecacerts -storepass changeit -file output.cert -alias sample.kkus.com-2

Certificate stored in file <output.cert>


이 다음은 추출한 인증서를 java_root에 있는 인증서에 삽입

$ JAVA_HOME=/opt/jdk1.8.0_161

$ keytool -importcert -keystore ${JAVA_HOME}/jre/lib/security/cacerts -storepass changeit -file output.cert -alias sample.kkus.com-2

Certificate was added to keystore


이렇게 작업 후에 문제를 해결했음...

 ㅁ client side


#1. gen key


ssh-keygen -t rsa -C "comment_server_name"

Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/my_ssh_key # 키이름을 넣음

Enter passphrase (empty for no passphrase): ********** # 최초 등록시 사용할 비밀문구를 입력함


-t : 키타입 [ rsa | dsa ]

-C : 코멘트. 없어도 상관없음


/home/user/.ssh/id_rsa

/home/user/.ssh/id_rsa.pub

키파일이 생김. 생성된 키파일중 pub 키 파일을 서버에 등록하면 됨. 


#2. pubkey 파일 전송


scp /home/user/.ssh/id_rsa.pub user@{host}:/home/user/.ssh/t_id_rsa.pub


 ㅁ server side

#3. authorized_keys생성

cd /home/user/.ssh

cat t_id_rsa.pub >> ~/.ssh/authorized_keys


만약 authorized_keys 파일이 없다면 생성되겠지만, 바로 적용 안됨. 

chmod 644 ~/.ssh/authoized-keys


java path 설정 바꾸려다가 c:\ProgramData\Oracle\Java\javapath 디렉토리의 심볼릭 링크를 날려먹음

cygwin을 설치해서 사용중인 관계로 ln -s "hear" "target"을 했으나 안됨. 


해결 방안. 

> ni java.exe -i SymbolicLink -ta "C:\Java\jre8\bin\java.exe"


'IT > WINDOW' 카테고리의 다른 글

Window update uninstall  (0) 2014.08.20
WINDOW7 부트로더 이름 바꾸기  (0) 2012.09.17



notepad

wusa /uninstall /kb:2982791 
wusa /uninstall /kb:2970228
wusa /uninstall /kb:2975719
wusa /uninstall /kb:2975331

save uninstall.bat


uninstall.bat 실행


'IT > WINDOW' 카테고리의 다른 글

[Windows 10] 심볼릭 링크 만들기  (0) 2018.01.16
WINDOW7 부트로더 이름 바꾸기  (0) 2012.09.17

KM 플레이어가 3.8.0.121 이 되면서...

요로코롬 업데이트 되고나서...



요로코롬 오른쪽에 불필요한 광고창이 뜨기 시작... 근데.. 이전 버전처럼(GOM처럼이라고 쓰는게 맞나?) 없애는 버튼이 사라짐.. 순간 당황...


해결법..


걍... 그림처럼...  저부분 누름..


그럼.. 됨..


끝...

그렇습니다. 


인민에어에 산사자 올리신분들.... 무선랜카드 안잡혀서 고민이셨죠... 


윈도우만 쓰다가 osx에서 랜카드좀 설치해서 편하게 살아보려고 했는데... onBoard 칩셋(엄밀히 말하면 콤보카드던가?) 는 무선랜 안잡아주고;;;


현재 필자는 블루투스가 안되서.. 환장할 지경입니다. 


저의 뻘짓은... 


http://x86osx.com/bbs/view.php?id=freeboard&page=1&sn1=&divpage=8&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=43360


에서도 확인하실 수 있다시피.. osx에 관해서는 컴맹에 가깝습니다. 


그래도 저와같은 사람들이 많을꺼 같아서...




이만큼 말머리 쓰고... 


RTUSB D2870-4.2.6.0 UI-4.0.8.0_2012_09_28.dmg


걍.. 다운받아서 설치하시면 됩니다. 



공식 사이트에서는 osx 1.6 버전까지 밖에 없고;;;

현재 나와있는 무선랜 11n 짜리로 설치해 보니... 이게 되드라구요... 


그럼 즐해킨 생활하시길...



+ Recent posts