apache ssl enable problem

아파치에 ssl 설정을 하고 https 접속을 하려는데 다음의 오류가 나왔다.

Secure Connection Failed

An error occurred during a connection to pchero21.com. SSL received a record that exceeded the maximum permissible length. (Error code: ssl_error_rx_record_too_long)

The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
Please contact the website owners to inform them of this problem.

구글링을 해봐도 ssl 모듈을 활성화 시키라는 이야기만 나오고…. 단지 설정값을 이리저리 바꿔보고 테스트하는 삽질만 하고 있었다.

 

그러다가, 짚히는 부분이 있어서, ssl 인증서를 다시 만들고 테스트를 해봤더니 잘 되었다.

처음 SSL 인증서를 만들 때, 다음의 명령어를 사용했었다.

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout ./postfix.key -out ./postfix.crt

문제가 되었던 부분은 rsa:2048 부분이었다.

다음의 명령어로 다시 ssl 인증서를 만들고 설정하니 잘 되었다.

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:1024 -keyout ./postfix.key -out ./postfix.crt

Raspberry pi with owncloud

라즈베리 파이를 사면서부터 이걸로 무엇을 해볼까 고민했었는데, 일단은 개인용 클라우드 시스템을 만들기로 했었다.

가이드와 여러 자료들을 살펴가며 열심히 서버를 설정했다.

이윽고, 모든 설치가 정상적으로 설치되고 사용하려고 하는데…

한가지 문제점이 있었다.
최초 클라우드 시스템 동기화를 위해 내 파일들을 업로드를 하는데 시간이 너무 오래 걸리는 것이었다.
하루는 밤새도록 켜놓고 있었는데, 20M 업로드를 했다.

이대로는 못쓰겠다 싶어서 설치 과정중에 문제가 있을까 싶어 몇번이고 재설치를 반복했다.
또한 클라우드 시스템에 붙이기 위해 새로 구입한 외장형 하드디스크도 문제가 있는 것 같아 그 부분도 같이 검증했다.
하드디스크가 좀 걱정이 되었으나 다행히 그부분은 문제가 아니었다.

무엇이 문제였을까…
현상은 파일 업로드가 지나치게 느리다는 것, 클라이언트쪽 실패 메시지를 확인해보니 단지 “Internal Error”라고만 나왔다.

결국 서버쪽 에러 로그를 확인하고난 뒤에서야 원인을 파악할 수 있었는데, 이유인 즉 Sqlite 때문이었다.

Sqlite는 DB Input/Ouput 시 DB 전체에 데이터베이스 Lock 을 걸어버린다.
보통은 이 속도가 금방이기 때문에 순식간에 지나가는데, 이 경우는 무엇때문인지는 모르겠으나,오류 발생 이후 업로드 재시도까지 굉장한 시간이 걸리는 것 같았다.

아무튼 문제는 Sqlite 로 진단하고 Mysql 로 변경해서 설치를 진행한 후, 정상적으로 작동한 것을 확인했다.

 

IMG_20150118_215845

 

 

 

Asterisk-12.2.0 compile error in FreeBSD-10

아래 내용들은 GCC49 버전으로 컴파일 했을 때 발생한 에러들이다.

GCC46 버전으로 컴파일 시, 다른 에러들이 발생할 수 있다. 가급적 최신의 컴파일러를 사용하자.

Asterisk 컴파일 에러.
컴파일 중 발생한 에러로서, 참조 에러이다. 파일 수정이 필요하다.

creating config.h
[LD] abstract_jb.o acl.o adsi.o alaw.o aoc.o app.o ast_expr2.o ast_expr2f.o asterisk.o astfd.o astmm.o astobj2.o audiohook.o autochan.o autoservice.o backtrace.o bridge.o bridge_after.o bridge_basic.o bridge_channel.o bridge_roles.o bucket.o callerid.o ccss.o cdr.o cel.o channel.o channel_internal_api.o chanvars.o cli.o config.o config_options.o core_local.o core_unreal.o crypt.o data.o datastore.o db.o devicestate.o dial.o dns.o dnsmgr.o dsp.o endpoints.o enum.o event.o features.o features_config.o file.o fixedjitterbuf.o format.o format_cap.o format_pref.o frame.o framehook.o fskmodem.o global_datastores.o hashtab.o heap.o http.o image.o indications.o io.o jitterbuf.o json.o loader.o lock.o logger.o manager.o manager_bridges.o manager_channels.o manager_endpoints.o manager_mwi.o manager_system.o md5.o media_index.o message.o mixmonitor.o named_acl.o netsock.o netsock2.o optional_api.o parking.o pbx.o pickup.o plc.o poll.o presencestate.o privacy.o rtp_engine.o say.o sched.o sdp_srtp.o security_events.o sem.o sha1.o sip_api.o slinfactory.o sorcery.o sounds_index.o srv.o stasis.o stasis_bridges.o stasis_cache.o stasis_cache_pattern.o stasis_channels.o stasis_endpoints.o stasis_message.o stasis_message_router.o stasis_system.o stdtime/localtime.o strcompat.o strings.o stun.o syslog.o taskprocessor.o tcptls.o tdd.o term.o test.o threadpool.o threadstorage.o timing.o translate.o udptl.o ulaw.o utils.o uuid.o version.o xml.o xmldoc.o editline/libedit.a  -> asterisk
ast_expr2.o: In function `op_func’:
/usr/local/src/asterisk-12.2.0/main/ast_expr2.y:884: warning: powl has lower than advertised precision
/usr/local/bin/ld: asterisk: local symbol `__progname’ in /usr/lib/crt1.o is referenced by DSO
/usr/local/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
gmake[2]: *** [asterisk] Error 1
gmake[1]: *** [main] Error 2
gmake[1]: Leaving directory `/usr/local/src/asterisk-12.2.0′
*** Error code 2

Stop.
make: stopped in /usr/local/src/asterisk-12.2.0

해결책은 해당 에러가 난 후에, main/asterisk.exports 파일에 다음의 패치 내용을 적용해주면 된다.

--- /usr/ports/net/asterisk/work/asterisk-1.8.11.0/main/asterisk.exports        2012-04-01 11:19:50.532808549 -0700
+++ /root/asterisk.exports      2012-04-01 10:43:28.258979089 -0700
@@ -44,6 +44,8 @@
res_srtp;
res_srtp_policy;
secure_call_info;
+               __progname;
+               environ;
local:
*;
};

 

 

spandsp 모듈 에러.
spandsp 모듈은 FAX 관련 모듈로 설치시 다음과 같은 오류가 발생했다.

   [CC] res_speech.c -> res_speech.o
[LD] res_speech.o -> res_speech.so
[CC] res_fax_spandsp.c -> res_fax_spandsp.o
res_fax_spandsp.c: In function ‘spandsp_v21_new’:
res_fax_spandsp.c:470:52: error: ‘MODEM_CONNECT_TONES_FAX_CED_OR_PREAMBLE’ undeclared (first use in this function)
p->tone_state = modem_connect_tones_rx_init(NULL, MODEM_CONNECT_TONES_FAX_CED_OR_PREAMBLE, spandsp_v21_tone, p);
^

문제의 원인은 낮은 버전의 라이브러리를 설치했기 때문이었다. 내가 설치했던 spandsp 패키지에서 제공하는 헤더파일에는 “MODEM_CONNECT_TONES_FAX_CED_OR_PREAMBLE” 선언이 없었던 것.
이미 Asterisk 를 설치한 다른 시스템에서 해당 헤더파일을 비교한 후에야 문제를 해결할 수 있었다.
해당 선언이 들어있는 패키지는 spandsp-devel 패키지이다.
그냥 설치하려고 하면 의존성 문제가 발생하므로 이전에 설치한 패키지를 지우고 새로 설치하도록 하자.

pkg delete spandsp
pkg install spandsp-devel

 

참조 : http://forums.asterisk.org/viewtopic.php?f=1&t=81017

————————————————————————–

 

하지만 make install 과정에서 asterisk.h 파일을 찾을 수 없다는 에러만 계속 나왔다.

결국 적당한 시점에서 타협을 해야 했는데.. 그냥 pkg 에 올려져 있는 asterisk 를 사용하기로 했다.

설치한 asterisk 버전은 11.8.1 이다.

Could not get python modules list…

사용가능한 Python 모듈들을 알아보기 위해 python 인터프리터에서 전체 모듈보기 명령어를 입력했는데, 다음과 같은 오류 메시지를 확인했다.

pchero@MyDebian:/usr/lib/pymodules/python2.7$ python
Python 2.7.3 (default, Mar 13 2014, 11:03:55) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help('modules')

Please wait a moment while I gather a list of all available modules...

/usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed
  import gobject._gobject
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
  warnings.warn(str(e), _gtk.Warning)
/usr/lib/python2.7/dist-packages/gi/module.py:142: Warning: cannot register existing type `GtkWidget'
  g_type = info.get_g_type()
/usr/lib/python2.7/dist-packages/gi/module.py:142: Warning: cannot add class private field to invalid type '<invalid>'
  g_type = info.get_g_type()
/usr/lib/python2.7/dist-packages/gi/module.py:142: Warning: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
  g_type = info.get_g_type()
/usr/lib/python2.7/dist-packages/gi/module.py:142: Warning: cannot register existing type `GtkBuildable'
  g_type = info.get_g_type()
/usr/lib/python2.7/dist-packages/gi/module.py:142: Warning: g_type_interface_add_prerequisite: assertion `G_TYPE_IS_INTERFACE (interface_type)' failed
  g_type = info.get_g_type()
/usr/lib/python2.7/dist-packages/gi/module.py:142: Warning: g_once_init_leave: assertion `result != 0' failed
  g_type = info.get_g_type()
/usr/lib/python2.7/dist-packages/gi/module.py:146: Warning: g_type_get_qdata: assertion `node != NULL' failed
  type_ = g_type.pytype

그리고 Hang 이 걸린듯 더이상 진행되지 않았다.

해결법을 찾던 도중, http://blog.rabbitvcs.org/archives/312 에서 비슷한 현상에 대한 해결법을 찾았는데 뭔가 완벽하진 않았다.
http://stackoverflow.com/questions/13301100/python-fail-to-display-list-of-modules 여기도 역시…
내용인 즉, help(‘modules’) 를 입력하기 전에 gtk 모듈을 먼저 load 하라는 것인데.. 깔끔하지 않았다.

pchero@MyDebian:/etc$ python
Python 2.7.3 (default, Mar 13 2014, 11:03:55) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import gtk
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
  warnings.warn(str(e), _gtk.Warning)
>>> 
>>> 
>>> help('modules')

Please wait a moment while I gather a list of all available modules...

/usr/lib/python2.7/dist-packages/keybinder/__init__.py:26: GtkWarning: IA__gdk_keymap_get_for_display: assertion `GDK_IS_DISPLAY (display)' failed
  from _keybinder import *
/usr/lib/python2.7/dist-packages/keybinder/__init__.py:26: GtkWarning: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed
  from _keybinder import *

** (.:7702): WARNING **: keybinder_init: Unable to open display
ANSI                _codecs_iso2022     fdpexpect           pyatspi
ArgImagePlugin      _codecs_jp          feedparser          pyclbr
BaseHTTPServer      _codecs_kr          filecmp             pycurl
Bastion             _codecs_tw          fileinput           pydoc
BdfFontFile         _collections        fnmatch             pydoc_data
BeautifulSoup       _csv                formatter           pyexpat
BeautifulSoupTests  _ctypes             fpconst             pygtk
BmpImagePlugin      _ctypes_test        fpectl              pynotify
BufrStubImagePlugin _curses             fpformat            quopri
CDROM               _curses_panel       fractions           random
CGIHTTPServer       _dbus_bindings      freeswitch          re
Canvas              _dbus_glib_bindings ftplib              readline
ConfigParser        _elementtree        functools           reportbug
ContainerIO         _functools          future_builtins     reportlab
Cookie              _hashlib            gc                  repr
CurImagePlugin      _heapq              gconf               resource
DLFCN               _hotshot            genericpath         rexec
DcxImagePlugin      _imaging            getopt              rfc822
Dialog              _imagingcms         getpass             rlcompleter
DocXMLRPCServer     _imagingft          gettext             robotparser
EpsImagePlugin      _imagingmath        gi                  runpy
ExifTags            _io                 gio                 scanext
FSM                 _json               glib                sched
FileDialog          _locale             glob                screen
FitsStubImagePlugin _lsprof             gnome               select
FixTk               _multibytecodec     gnome_sudoku        serial
FliImagePlugin      _multiprocessing    gnomecanvas         sets
FontFile            _pyio               gnomevfs            setuptools
FpxImagePlugin      _random             gobject             sgmllib
GbrImagePlugin      _renderPM           grp                 sgmlop
GdImageFile         _rl_accel           gtk                 sha
GifImagePlugin      _socket             gtkunixprint        shelve
GimpGradientFile    _sqlite3            gtweak              shlex
GimpPaletteFile     _sre                gzip                shutil
GnuPGInterface      _ssl                hamster             signal
GribStubImagePlugin _strptime           hashlib             site
HTMLParser          _struct             heapq               sitecustomize
Hdf5StubImagePlugin _symtable           hmac                smtpd
HelloModule         _sysconfigdata      hotshot             smtplib
IN                  _sysconfigdata_nd   hpmudext            sndhdr
IcnsImagePlugin     _testcapi           htmlentitydefs      socket
IcoImagePlugin      _threading_local    htmllib             softwareproperties
ImImagePlugin       _warnings           httplib             speechd
Image               _weakref            httplib2            speechd_config
ImageChops          _weakrefset         ihooks              spwd
ImageCms            abc                 imaplib             sqlite3
ImageColor          aifc                imghdr              sre
ImageDraw           antigravity         imp                 sre_compile
ImageDraw2          anydbm              importlib           sre_constants
ImageEnhance        apt                 imputil             sre_parse
ImageFile           apt_inst            inspect             ssl
ImageFileIO         apt_pkg             invest              starpy
ImageFilter         aptdaemon           io                  stat
ImageFont           aptsources          itertools           statvfs
ImageGL             argparse            json                string
ImageGrab           array               keybinder           stringold
ImageMath           ast                 keyword             stringprep
ImageMode           asynchat            lib2to3             strop
ImageOps            asyncore            libxml2             struct
ImagePalette        atexit              libxml2mod          subprocess
ImagePath           atk                 linecache           sunau
ImageQt             audiodev            linuxaudiodev       sunaudio
ImageSequence       audioop             locale              symbol
ImageShow           axi                 logging             symtable
ImageStat           base64              louis               sys
ImageTransform      bdb                 lsb_release         sysconfig
ImageWin            binascii            macpath             syslog
ImtImagePlugin      binhex              macurl2path         tabnanny
IptcImagePlugin     bisect              mailbox             tarfile
JpegImagePlugin     bonobo              mailcap             telnetlib
McIdasImagePlugin   brlapi              mako                tempfile
MicImagePlugin      bsddb               markupbase          termios
MimeWriter          bz2                 markupsafe          test
MpegImagePlugin     cPickle             marshal             test1
MspImagePlugin      cProfile            math                textwrap
ORBit               cStringIO           md5                 this
OleFileIO           cairo               mhlib               thread
OpenSSL             calendar            mimetools           threading
PAM                 caribou             mimetypes           tidy
PIL                 cgi                 mimify              time
PSDraw              cgitb               mmap                timeit
PaletteFile         chardet             mod_fstest          tkColorChooser
PalmImagePlugin     chunk               mod_test            tkCommonDialog
PcdImagePlugin      cmath               modulefinder        tkFileDialog
PcfFontFile         cmd                 multifile           tkFont
PcxImagePlugin      code                multiprocessing     tkMessageBox
PdfImagePlugin      codecs              mutex               tkSimpleDialog
PixarImagePlugin    codeop              netrc               toaiff
PngImagePlugin      collections         new                 token
PpmImagePlugin      colorsys            nis                 tokenize
PsdImagePlugin      commands            nntplib             trace
Queue               compileall          ntpath              traceback
SOAPpy              compiler            nturl2path          ttk
ScrolledText        contextlib          numbers             tty
SgiImagePlugin      cookielib           numpy               turtle
SimpleDialog        copy                opcode              twisted
SimpleHTTPServer    copy_reg            operator            types
SimpleXMLRPCServer  crypt               optparse            unicodedata
SocketServer        csv                 orca                unittest
SpiderImagePlugin   ctypes              os                  uno
StringIO            cupsext             os2emxpath          unohelper
SunImagePlugin      curl                ossaudiodev         urllib
TYPES               curses              packagekit          urllib2
TarIO               datetime            pango               urlparse
TgaImagePlugin      dbhash              pangocairo          user
TiffImagePlugin     dbm                 parser              uu
TiffTags            dbus                pcardext            uuid
Tix                 deb822              pdb                 vte
Tkconstants         debconf             pexpect             warnings
Tkdnd               debian              pickle              wave
Tkinter             debian_bundle       pickletools         weakref
UserDict            debianbts           pip                 webbrowser
UserList            decimal             pipes               whichdb
UserString          defer               pkg_resources       wnck
WalImageFile        difflib             pkgutil             wsgiref
WmfImagePlugin      dircache            platform            xapian
XVThumbImagePlugin  dis                 plistlib            xdg
XbmImagePlugin      distutils           popen2              xdrlib
XpmImagePlugin      doctest             poplib              xml
_LWPCookieJar       drv_libxml2         posix               xmllib
_MozillaCookieJar   dsextras            posixfile           xmlrpclib
__builtin__         dumbdbm             posixpath           xxsubtype
__future__          dummy_thread        pprint              zeitgeist
_abcoll             dummy_threading     profile             zipfile
_ast                easy_install        pstats              zipimport
_bisect             email               pty                 zlib
_bsddb              encodings           pwd                 zope
_codecs             errno               pxssh               
_codecs_cn          exceptions          pyHnj               
_codecs_hk          fcntl               py_compile          

Enter any module name to get more help.  Or, type "modules spam" to search
for modules whose descriptions contain the word "spam".