2016년 8월 24일 수요일

Django의 runserver_plus에 올린 Let's Encrypt의 SSL certificate

개발용이지만 https가 필요해서 RunServerPlus를 사용하고 있다. 문제가 생긴 것은 외부의 결제 시스템에서 개발 서버에 접속할 때 아래와 같은 에러가 난다는 것.

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

결제 시스템쪽의 JVM을 업데이트하면 좋겠는데, 우리쪽에서 처리를 하라고 연락이 왔다.

https://www.geocerts.com/ssl_checker에 접속해서 certificate를 확인해보라며. certificate를 확인해보니, certificate chain을 확인할 수 없단다.


runserver_plus에는 Certificate chain file을 지정하는 옵션이 보이지 않는다. --cert만 지정할 수 있다. (그런데, 이 옵션이면 되는 것이었다)

Nginx + Gunicorn 또는 uWSGI로 가면서 chain file을 지정하는 방법이 있겠지 하고, uwsgi 설치하고, nginx 설정하고 nginx의 옵션을 알아보는데, crt 파일에 chain path 정보를 같이 넣은 것도 동작한다는 것을 알게 되었다-_-

Let's Encrypt에서 certificate 갱신하면 만드는 파일들이 있다.

  • cert.pem
  • chain.pem
  • fullchain.pem
  • privkey.pem

위의 파일들 중에서 cert.pem을 crt 파일로 symlink해서 사용하고 있었는데, chain 정보도 들어 있는 fullchain.pem을 crt 파일로 symlink한 후 Django를 올리니..


잘 된다.



2016년 8월 2일 화요일

개발 과정에서 가장 좋아하는 부분

소프트웨어 개발하는 과정에서 내가 가장 좋아하는 부분 또는 단계는 DB 모델링. 이건 오래 전부터 느껴왔던 것인데, 목표로 하는 일을 하기 위해 필요한 데이터들을 구상하고, 그것들을 위해 DB 스키마를 작성하고 있으면 기분이 좋다. 어떻게 보면 아이디어를 짜내서 구체화하는 기획 단계의 일을 좋아하는 것이 아닌가 싶기도 하고.. 실제 개발은 구찮어.. ㅎㅎ

2016년 4월 24일 일요일

White Macbook A1181을 Scratch 머신으로

아들이 사용할 Scratch용 머신으로 A1181을 줬다. HDD를 SSD로 업그레이드하고 Ubuntu 14.04 LTS를 설치하니 쓸만하다. WiFi가 안되어서 아래 사이트를 참고해서 BCM 드라이버를 설치.

http://www.howopensource.com/2012/10/install-broadcom-sta-wireless-driver-in-ubuntu-12-10-12-04/


2016년 3월 21일 월요일

**페이 vs 현금

가끔 지갑을 놓고 나갈 때가 있다. 그런데, 휴대폰은 잊지 않고 가지고 나간다. 이런 경우 돈을 쓸 일이 있으면 낭패다. 애플페이는 안되고. 그래서 신세계 페이 앱을 설치해놓았다. 가맹점이 많지 않지만, 그나마 쓸 수 있을까 해서.

아내는 이런 종류의 기술 발전에 별로 관심이 없다. 현금을 사용하는 것이 좋단다. 기술면으로 볼 때 보수적이라고 해야 할까.

오늘 마침 관련된 내용의 뉴스가 하나 보인다.

Why we should fear a cashless world

현금이 없는 세상을 왜 두려워해야 하는가. 눈이 가는 곳은 아래 두 문단.
In a world without cash, every payment you make will be traceable. Do you want governments (which are not always benevolent), banks or payment processors to have potential access to that information? The power this would hand them is enormous and the potential scope for Orwellian levels of surveillance is terrifying.
Cash, on the other hand, empowers its users. It enables them to buy and sell, and store their wealth, without being dependent on anyone else. They can stay outside the financial system, if so desired.
음.. traceable은 사실 별로 문제라고 생각하지 않는다. 이미 막을 수 있는 상황도 아니다. 다만 그 정보를 누가 가지고 있고 어떻게 사용하는가에 대한 것은 고민해볼만하다.

2016년 2월 29일 월요일

How to add your library path so that find_library can find your dylibs

When you use find_library on OS X you can add your library path to the search path.

    import os
    from ctypes.macholib import dyld

    os.environ['RESOURCEPATH'] = '' # if not set before
    frameworks = os.path.join(os.environ['RESOURCEPATH'], '..', 'Frameworks')
    dyld.DEFAULT_FRAMEWORK_FALLBACK.insert(0, frameworks)
    dyld.DEFAULT_LIBRARY_FALLBACK.insert(0, frameworks)

    find_library("yourlib") # this will look for ../Frameworks/libyourlib.dylib


2016년 2월 4일 목요일

iMac의 메모리를 32GB로

eBay에서 8GB짜리 4개를 구입해서 장착해줬다. 150불 정도.