반응형


인증서

  • public key에 대한 sign 파일
  • private key로 서명요청파일(CSR)을 생성하여 인증서 생성시 public키가 포함된 인증서 파일이 생성됨
  • 해당 public키를 이용하여 통신을 하며 해당 키가 정상적인 public key인지를 인증할 수 있음
  • 이 public key에 대한 보증을 하는 단체를 중계인증기관, 최상위 인증 기관을 RootCA라고 부르며 최상위 인증기관은 중계 인증기관을 보증함. 인증 기관 없이 자기 자신을 인증된 것을 Self Sign 인증서라고 하며 다른 누구도 보증해주지 않는 신뢰할 수 없는 인증서가 됨.

인증기관 인증서 : 인증서<-중계인증기관<-최상위인증기관(Self Signed)

Self Sign 인증서 : 인증서(Self Signed)




인증서 생성 순서

1. 개인키(Private Key) 생성

2. 서명 요청 파일(CSR : 인증 서명 요청) 파일 생성

3. 인증서 생성




인증서 생성

1. 개인키(Private Key) 생성

   - 개별적으로 개인키를 생성하며 별도의 개인키 생성 없이 바로 CSR을 생성하며 개인키 생성 가능


   1.1 Without Password

   # openssl genrsa -out <Key File Name> <Key Size>


$ openssl genrsa -out private_nopassword.key 2048

Generating RSA private key, 2048 bit long modulus

...............................................................+++

...............+++

e is 65537 (0x10001)



   1.2 With Password

   # openssl genrsa -<Algorithm> -out <Key File Name> <Key Size>

   Alorithm : -aes128, -aes192, -aes256, -camellia192, -camellia256, -des, -des3 등


$ openssl genrsa -aes256 -out private_password.key 2048

Generating RSA private key, 2048 bit long modulus

.................................................................................................+++

...........................+++

e is 65537 (0x10001)

Enter pass phrase for private_password.key:

Verifying - Enter pass phrase for private_password.key:



  1.3 생성된 개인키 정보 확인

   # openssl rsa -text -in <Key File Name>


$ openssl rsa -text -in private_password.key

Enter pass phrase for private_password.key:

Private-Key: (2048 bit)

modulus:

    00:c7:0f:3c:22:91:27:cd:d5:00:77:a7:bf:04:a4:

    3c:a9:6c:b6:ee:83:81:6d:de:ff:36:a1:11:58:bf:

    35:29:d3:61:93:e5:31:00:42:ad:49:21:eb:08:b0:

    ef:60:0b:ab:a5:96:31:8c:b9:4e:02:84:11:e0:73:

    86:58:c5:95:a1:39:42:34:9f:b3:3e:90:4b:c5:d1:

    64:c4:47:d8:9d:9c:ad:c5:ee:e2:2f:1c:a4:ed:4f:

    c8:4c:6f:19:6e:d2:5e:36:af:ba:23:84:72:a2:2d:

    7a:be:76:94:30:6e:83:88:e6:24:8a:95:80:c0:07:

    60:24:75:84:40:41:f9:63:b2:ac:7d:64:bf:46:9d:

    e9:98:0d:ee:bf:0b:36:3f:79:b4:70:18:e2:b7:c1:

    b6:9e:1d:8b:8e:76:da:28:dd:6a:25:fc:5f:96:50:

    1f:97:8e:e5:4b:82:71:8b:56:b8:7c:04:c4:f9:35:

    73:59:7c:d2:6a:10:a4:87:f9:2a:72:c6:55:f1:d2:

    9e:a7:68:a5:ba:ac:55:f7:9f:c2:59:cb:b0:bb:af:

    79:1a:bc:14:b3:8a:77:8e:b0:cd:59:c3:ce:88:f8:

    02:10:c1:25:de:30:d6:08:07:cc:05:43:c5:27:2f:

    dc:83:29:05:88:81:a9:44:30:3b:f7:c4:c8:fc:b4:

    72:f1

publicExponent: 65537 (0x10001)

privateExponent:

    00:ad:e5:e4:4d:fa:6b:40:88:f5:28:93:15:f0:13:

    1e:9f:90:46:db:65:6d:1b:b3:f5:57:1f:2c:cd:4f:

    f5:3c:bd:da:7f:de:78:89:56:b6:95:ae:18:ea:f5:

    cf:99:23:78:e7:66:a7:90:dd:8d:85:eb:24:c6:e5:

    85:97:65:bd:4b:24:7f:6f:03:99:0e:6d:f6:94:31:

    52:8b:9a:8c:65:5c:ab:fe:bf:ab:3f:27:11:f9:f3:

    79:f3:34:17:8e:d6:1e:d2:3d:80:2a:69:19:d0:0e:

    55:2d:b0:df:d2:d3:a8:fb:5e:ba:cb:8a:c1:f8:80:

    39:00:80:dd:71:59:71:6a:22:f1:bc:57:b7:48:42:

    2c:86:fa:32:fe:dc:b9:b2:04:4a:1a:ff:e2:21:d6:

    4b:98:6e:ad:8d:fb:26:d9:3a:ed:a2:95:4b:37:2f:

    98:f8:c5:49:5c:ca:cb:ed:b0:56:3c:93:6d:bf:66:

    8a:f5:7d:69:3a:ca:12:9b:0e:06:52:7a:f9:6c:4b:

    dd:c9:dd:f0:86:f5:60:ef:ae:ce:1a:a5:33:83:49:

    06:22:84:0e:af:c5:00:e3:cd:fd:93:81:51:8b:74:

    c9:3b:23:23:28:1a:74:bb:1d:36:a3:14:fb:a1:67:

    00:7e:03:ec:2c:50:7a:1b:3f:8b:06:06:42:19:95:

    fe:c5

prime1:

    00:e7:71:39:e7:41:ac:af:79:c9:40:1d:5c:a8:b2:

    bf:66:b9:1c:1a:0f:72:6e:e8:54:86:86:47:fe:55:

    9a:47:7d:45:df:65:e0:3b:32:62:16:e0:38:2e:6a:

    3c:15:f5:2d:aa:5d:29:b8:7d:fe:4e:03:62:c4:ec:

    a3:c7:0e:c9:2b:23:e2:96:18:cb:78:af:ff:e5:80:

    d2:ed:22:bf:3f:27:e3:46:bf:1d:d2:d9:ca:97:7b:

    65:37:17:f6:bf:40:ba:49:30:0c:72:3e:be:82:00:

    09:fd:29:5d:eb:fc:27:ee:68:43:7f:62:94:0b:59:

    4d:d2:7e:48:26:20:4c:1c:0b

prime2:

    00:dc:2e:61:5e:99:5b:db:65:54:26:16:b6:6a:64:

    74:3e:d4:09:bd:c5:59:72:33:ee:3d:4f:6f:91:bc:

    ba:3c:57:22:02:f3:de:5b:60:84:e7:c5:7f:de:f0:

    fd:a4:8c:55:25:71:c9:16:3a:dc:d6:77:ca:31:84:

    76:ce:3f:f7:56:42:b5:ff:bd:9f:70:f0:a8:d5:fa:

    41:63:aa:b0:c9:e0:41:80:63:d8:3c:9a:19:cc:ff:

    31:45:6a:ad:c9:60:ab:d7:1d:13:a9:dd:7e:43:5a:

    d9:d1:aa:6a:2e:1d:19:8c:3d:67:a3:ef:79:09:81:

    31:04:86:af:63:e8:b9:ce:73

exponent1:

    46:8e:2a:f3:c7:fe:a7:e3:fd:a9:31:0a:4d:57:68:

    a8:1d:28:66:fd:6c:8a:49:03:73:9b:3e:19:57:e9:

    57:7f:e6:2c:2b:77:87:34:5d:d8:d1:73:ef:1a:6d:

    c4:d7:e0:9a:fe:19:b8:e7:97:fe:1a:64:22:da:6d:

    37:42:d7:aa:f2:1e:a2:59:5e:b6:25:19:62:d2:b9:

    fa:96:cc:2c:a9:b1:4c:a0:f8:ab:8d:bf:88:1c:93:

    07:8f:a3:a6:3c:4a:4e:03:7a:d7:dd:2e:e0:9c:b8:

    6e:d8:0c:8c:e3:6b:1c:ef:e6:1b:d0:66:87:6b:2b:

    21:4f:64:19:53:61:40:6f

exponent2:

    36:df:84:3a:bc:43:ad:48:f2:90:cf:86:44:bb:a6:

    50:e6:2d:4b:53:3c:b8:7e:82:b8:5a:ec:b6:48:6f:

    ad:8c:15:98:e0:c8:20:c3:cc:3b:aa:f7:f4:4a:e1:

    1b:ba:31:9a:34:62:66:1c:e3:5e:bb:d9:f3:3f:4d:

    10:97:d6:7f:73:fe:c1:ae:b3:66:c5:43:7e:98:70:

    e5:72:eb:be:54:1a:5e:f2:03:39:0f:3a:b0:e1:44:

    99:45:3d:ec:7b:20:38:6b:31:b4:5a:d4:15:db:35:

    7f:d0:55:c8:0a:4e:8c:a9:dd:03:79:32:14:11:53:

    73:0a:51:f9:b7:4d:5f:4b

coefficient:

    31:2b:87:2f:62:16:32:2b:bc:a2:e3:4d:92:3b:b9:

    ce:9d:f5:c5:dc:03:7a:47:fc:b8:8a:ec:3f:be:c7:

    3c:08:d1:c0:80:29:ff:9d:f7:8d:ba:f2:08:2b:e0:

    ae:15:80:0a:22:cc:07:87:4c:f7:06:0f:09:00:bd:

    a0:a2:4d:9e:0d:3a:31:b9:ab:97:c0:b7:b6:ef:24:

    46:d8:d1:20:fd:17:b4:31:8b:c7:c6:72:da:5c:35:

    9f:68:95:2b:65:79:d8:bf:cd:5b:7d:6e:2c:25:60:

    ef:96:1f:91:bb:f4:67:74:3a:c7:23:fd:ea:d1:08:

    41:7d:dd:54:ce:c6:77:eb

writing RSA key

-----BEGIN RSA PRIVATE KEY-----

MIIEowIBAAKCAQEAxw88IpEnzdUAd6e/BKQ8qWy27oOBbd7/NqERWL81KdNhk+Ux

AEKtSSHrCLDvYAurpZYxjLlOAoQR4HOGWMWVoTlCNJ+zPpBLxdFkxEfYnZytxe7i

Lxyk7U/ITG8ZbtJeNq+6I4Ryoi16vnaUMG6DiOYkipWAwAdgJHWEQEH5Y7KsfWS/

Rp3pmA3uvws2P3m0cBjit8G2nh2LjnbaKN1qJfxfllAfl47lS4Jxi1a4fATE+TVz

WXzSahCkh/kqcsZV8dKep2iluqxV95/CWcuwu695GrwUs4p3jrDNWcPOiPgCEMEl

3jDWCAfMBUPFJy/cgykFiIGpRDA798TI/LRy8QIDAQABAoIBAQCt5eRN+mtAiPUo

kxXwEx6fkEbbZW0bs/VXHyzNT/U8vdp/3niJVraVrhjq9c+ZI3jnZqeQ3Y2F6yTG

5YWXZb1LJH9vA5kObfaUMVKLmoxlXKv+v6s/JxH583nzNBeO1h7SPYAqaRnQDlUt

sN/S06j7XrrLisH4gDkAgN1xWXFqIvG8V7dIQiyG+jL+3LmyBEoa/+Ih1kuYbq2N

+ybZOu2ilUs3L5j4xUlcysvtsFY8k22/Zor1fWk6yhKbDgZSevlsS93J3fCG9WDv

rs4apTODSQYihA6vxQDjzf2TgVGLdMk7IyMoGnS7HTajFPuhZwB+A+wsUHobP4sG

BkIZlf7FAoGBAOdxOedBrK95yUAdXKiyv2a5HBoPcm7oVIaGR/5Vmkd9Rd9l4Dsy

YhbgOC5qPBX1LapdKbh9/k4DYsTso8cOySsj4pYYy3iv/+WA0u0ivz8n40a/HdLZ

ypd7ZTcX9r9AukkwDHI+voIACf0pXev8J+5oQ39ilAtZTdJ+SCYgTBwLAoGBANwu

YV6ZW9tlVCYWtmpkdD7UCb3FWXIz7j1Pb5G8ujxXIgLz3ltghOfFf97w/aSMVSVx

yRY63NZ3yjGEds4/91ZCtf+9n3DwqNX6QWOqsMngQYBj2DyaGcz/MUVqrclgq9cd

E6ndfkNa2dGqai4dGYw9Z6PveQmBMQSGr2Pouc5zAoGARo4q88f+p+P9qTEKTVdo

qB0oZv1sikkDc5s+GVfpV3/mLCt3hzRd2NFz7xptxNfgmv4ZuOeX/hpkItptN0LX

qvIeolletiUZYtK5+pbMLKmxTKD4q42/iByTB4+jpjxKTgN6190u4Jy4btgMjONr

HO/mG9Bmh2srIU9kGVNhQG8CgYA234Q6vEOtSPKQz4ZEu6ZQ5i1LUzy4foK4Wuy2

SG+tjBWY4Mggw8w7qvf0SuEbujGaNGJmHONeu9nzP00Ql9Z/c/7BrrNmxUN+mHDl

cuu+VBpe8gM5Dzqw4USZRT3seyA4azG0WtQV2zV/0FXICk6Mqd0DeTIUEVNzClH5

t01fSwKBgDErhy9iFjIrvKLjTZI7uc6d9cXcA3pH/LiK7D++xzwI0cCAKf+d9426

8ggr4K4VgAoizAeHTPcGDwkAvaCiTZ4NOjG5q5fAt7bvJEbY0SD9F7Qxi8fGctpc

NZ9olStledi/zVt9biwlYO+WH5G79Gd0Oscj/erRCEF93VTOxnfr

-----END RSA PRIVATE KEY-----



   1.4 개인키로부터 공개키 생성

   # openssl rsa -in <Generated Private Key> -pubout -out <Public Key File Name to Generate>


$ openssl rsa -in private_password.key -pubout -out public_password.key

Enter pass phrase for private_password.key:

writing RSA key

$ ls | grep public_pasword.key   

public_password.key

$ cat ./public_password.key

-----BEGIN PUBLIC KEY-----

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxw88IpEnzdUAd6e/BKQ8

qWy27oOBbd7/NqERWL81KdNhk+UxAEKtSSHrCLDvYAurpZYxjLlOAoQR4HOGWMWV

oTlCNJ+zPpBLxdFkxEfYnZytxe7iLxyk7U/ITG8ZbtJeNq+6I4Ryoi16vnaUMG6D

iOYkipWAwAdgJHWEQEH5Y7KsfWS/Rp3pmA3uvws2P3m0cBjit8G2nh2LjnbaKN1q

JfxfllAfl47lS4Jxi1a4fATE+TVzWXzSahCkh/kqcsZV8dKep2iluqxV95/CWcuw

u695GrwUs4p3jrDNWcPOiPgCEMEl3jDWCAfMBUPFJy/cgykFiIGpRDA798TI/LRy

8QIDAQAB

-----END PUBLIC KEY-----



2. 서명 요청 파일(CSR : 인증 서명 요청) 파일 생성 


   2.1 개인키를 이용한 CSR 파일 생성

   # openssl req -new -key <Private Key> -out <CSR File Name>


$ openssl req -new -key private_password.key -out cert.csr    

Enter pass phrase for private_password.key:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:KR

State or Province Name (full name) [Some-State]:Seoul

Locality Name (eg, city) []:Junggu

Organization Name (eg, company) [Internet Widgits Pty Ltd]:StudyLang

Organizational Unit Name (eg, section) []:RnD

Common Name (e.g. server FQDN or YOUR name) []:AProgrammer

Email Address []:aprog@thiscompany.com


Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

$ ls | grep csr

cert.csr



   2.2 개인키 생성과 동시에 CSR 파일 생성

   # openssl req -new -out <CSR File Name> -keyout <Private Key File Name> -newkey rsa:<Key Size>


$ openssl req -new -out cert_with_new_privkey.csr -keyout privkey_with_new_cert.key -newkey rsa:2048 

Generating a 2048 bit RSA private key

..............................................................+++

............................................................................................+++

writing new private key to 'privkey_with_new_cert.key'

Enter PEM pass phrase:

Verifying - Enter PEM pass phrase:

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:kr

State or Province Name (full name) [Some-State]:Seoul

Locality Name (eg, city) []:Junggu

Organization Name (eg, company) [Internet Widgits Pty Ltd]:ThisCompany

Organizational Unit Name (eg, section) []:

Common Name (e.g. server FQDN or YOUR name) []:AProgrammer

Email Address []:mail@thiscompany.com


Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

$ ls | grep privkey

cert_with_new_privkey.csr

privkey_with_new_cert.key


 

   2.3 CSR 파일 정보 확인

   # openssl req -text -in <CSR File Name> -noout


$ openssl req -text -in cert_with_new_privkey.csr

Certificate Request:

    Data:

        Version: 0 (0x0)

        Subject: C=kr, ST=Seoul, L=Junggu, O=ThisCompany, CN=AProgrammer/emailAddress=mail@thiscompany.com

        Subject Public Key Info:

            Public Key Algorithm: rsaEncryption

                Public-Key: (2048 bit)

                Modulus:

                    00:9f:99:b0:94:17:6e:39:64:cc:86:da:e6:05:d6:

                    77:70:04:f9:3c:58:6f:c9:4b:9e:19:45:db:a6:fa:

                    6b:e5:63:db:eb:88:a2:14:53:e6:5a:ab:cc:8e:48:

                    d7:cf:08:37:06:06:33:19:ee:b1:88:6e:ac:74:24:

                    d2:46:0e:fb:bb:ea:3f:75:a5:c6:99:29:35:85:aa:

                    1e:1d:5d:95:93:bf:9b:2f:e9:54:f3:0c:a9:b9:3e:

                    12:d5:1e:fb:24:7d:6d:06:5c:06:ae:6d:41:66:74:

                    12:20:2a:d2:f7:67:f8:02:29:7f:aa:94:4b:ea:6a:

                    8c:87:9b:07:4c:1c:66:45:4b:07:54:ba:5e:26:e0:

                    7b:92:5c:0e:ec:68:fb:c0:a4:2e:f4:e8:51:9e:c0:

                    b8:bb:86:86:7b:b8:9a:32:8e:18:0a:bd:5d:df:01:

                    ae:6f:6e:2d:42:96:d4:8a:71:3c:ef:6d:c4:0c:60:

                    5f:a1:90:29:63:16:0c:b9:6b:c3:02:a4:3c:8c:f9:

                    97:c6:a0:42:1b:87:28:ae:ee:f9:c0:43:d2:47:9a:

                    73:35:01:ef:72:19:da:a7:7b:c6:0a:dc:f3:e6:cb:

                    8b:59:72:33:96:8c:02:e6:c5:9f:d5:20:4c:1c:f2:

                    98:9a:54:24:fa:1f:83:a5:78:c5:7d:fe:92:06:6a:

                    d1:a1

                Exponent: 65537 (0x10001)

        Attributes:

            a0:00

    Signature Algorithm: sha256WithRSAEncryption

         13:a6:b5:0a:a5:4e:0e:31:af:60:a0:4f:c8:bc:9d:e6:de:63:

         e7:18:45:4b:c5:7d:bd:7b:82:84:95:a1:20:de:b5:fb:e7:a6:

         11:7b:ed:bf:6b:03:83:0d:05:b5:40:3f:39:a1:a8:ce:5b:3f:

         f3:98:a3:e3:7e:51:38:cd:d4:b1:4e:55:d7:3e:eb:60:da:65:

         43:6a:6a:e9:f1:f6:e4:4e:31:7d:c4:bf:a6:e9:3c:d1:25:61:

         c1:0e:be:3e:32:3a:09:8a:73:9b:90:56:2a:06:6e:a3:31:29:

         12:27:ba:16:cb:ff:7d:37:0b:35:a3:5c:d9:22:1b:53:9b:33:

         81:cf:37:b7:6f:ff:d7:40:bb:56:d5:8f:7d:6b:2b:09:a0:7d:

         fd:23:60:17:64:31:49:19:be:45:e7:7d:95:b2:55:5f:4b:d5:

         1c:06:42:b0:28:e7:1c:29:52:bb:6a:74:2e:d0:75:4c:2f:00:

         54:d6:36:87:fc:67:b6:05:3f:c1:d8:12:f2:45:3c:81:77:33:

         9f:82:f5:eb:35:0e:68:af:5b:d1:ba:43:b5:3f:63:fa:27:82:

         4a:1c:56:d6:1e:7b:d1:85:e9:db:ca:5b:b4:26:64:95:60:95:

         7e:5f:a6:42:3a:02:d6:16:5a:3a:a3:21:fc:43:61:af:9f:50:

         4c:a9:22:7f

-----BEGIN CERTIFICATE REQUEST-----

MIICxDCCAawCAQAwfzELMAkGA1UEBhMCa3IxDjAMBgNVBAgMBVNlb3VsMQ8wDQYD

VQQHDAZKdW5nZ3UxFDASBgNVBAoMC1RoaXNDb21wYW55MRQwEgYDVQQDDAtBUHJv

Z3JhbW1lcjEjMCEGCSqGSIb3DQEJARYUbWFpbEB0aGlzY29tcGFueS5jb20wggEi

MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfmbCUF245ZMyG2uYF1ndwBPk8

WG/JS54ZRdum+mvlY9vriKIUU+Zaq8yOSNfPCDcGBjMZ7rGIbqx0JNJGDvu76j91

pcaZKTWFqh4dXZWTv5sv6VTzDKm5PhLVHvskfW0GXAaubUFmdBIgKtL3Z/gCKX+q

lEvqaoyHmwdMHGZFSwdUul4m4HuSXA7saPvApC706FGewLi7hoZ7uJoyjhgKvV3f

Aa5vbi1CltSKcTzvbcQMYF+hkCljFgy5a8MCpDyM+ZfGoEIbhyiu7vnAQ9JHmnM1

Ae9yGdqne8YK3PPmy4tZcjOWjALmxZ/VIEwc8piaVCT6H4OleMV9/pIGatGhAgMB

AAGgADANBgkqhkiG9w0BAQsFAAOCAQEAE6a1CqVODjGvYKBPyLyd5t5j5xhFS8V9

vXuChJWhIN61++emEXvtv2sDgw0FtUA/OaGozls/85ij435ROM3UsU5V1z7rYNpl

Q2pq6fH25E4xfcS/puk80SVhwQ6+PjI6CYpzm5BWKgZuozEpEie6Fsv/fTcLNaNc

2SIbU5szgc83t2//10C7VtWPfWsrCaB9/SNgF2QxSRm+Red9lbJVX0vVHAZCsCjn

HClSu2p0LtB1TC8AVNY2h/xntgU/wdgS8kU8gXczn4L16zUOaK9b0bpDtT9j+ieC

ShxW1h570YXp28pbtCZklWCVfl+mQjoC1hZaOqMh/ENhr59QTKkifw==

-----END CERTIFICATE REQUEST-----



3. 인증서 생성


   3.1 Self Sign 인증서


      3.1.1 CSR 파일을 이용한 인증서 생성

  # openssl x509 -req -days <Number of Days> -in <CSR File Name> -signkey <Private Key> -out <Output File Name>


$ openssl x509 -req -days 365 -in ./cert.csr -signkey ./private_password.key -out cert.crt

Signature ok

subject=/C=KR/ST=Seoul/L=Junggu/O=StudyLang/OU=RnD/CN=AProgrammer/emailAddress=aprog@thiscompany.com

Getting Private key

Enter pass phrase for ./private_password.key:

$ ls | grep cert.crt

cert.crt



      3.1.2 CSR 파일 없이 인증서 생성(CSR 즉시 생성하여 사용함, Private Key가 있어야 함)

      # openssl -req -new -x509 -days <Number of Days> -key <Private Key> -out <Output File Name>


$ openssl req -new -x509 -days 365 -key ./private_password.key -out cert_no_csr.crt

Enter pass phrase for ./private_password.key:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:KR

State or Province Name (full name) [Some-State]:Seoul

Locality Name (eg, city) []:Junggu

Organization Name (eg, company) [Internet Widgits Pty Ltd]:ThisCompany

Organizational Unit Name (eg, section) []:RnD

Common Name (e.g. server FQDN or YOUR name) []:AProgrammer

Email Address []:thisemail@anywhere.com

$ ls | grep cert_no_csr

cert_no_csr.crt

$ cat ./cert_no_csr.crt

-----BEGIN CERTIFICATE-----

MIID8zCCAtugAwIBAgIJAKYcr5/Y+EbcMA0GCSqGSIb3DQEBCwUAMIGPMQswCQYD

VQQGEwJLUjEOMAwGA1UECAwFU2VvdWwxDzANBgNVBAcMBkp1bmdndTEUMBIGA1UE

CgwLVGhpc0NvbXBhbnkxDDAKBgNVBAsMA1JuRDEUMBIGA1UEAwwLQVByb2dyYW1t

ZXIxJTAjBgkqhkiG9w0BCQEWFnRoaXNlbWFpbEBhbnl3aGVyZS5jb20wHhcNMTgw

MTAyMjM1MDE3WhcNMTkwMTAyMjM1MDE3WjCBjzELMAkGA1UEBhMCS1IxDjAMBgNV

BAgMBVNlb3VsMQ8wDQYDVQQHDAZKdW5nZ3UxFDASBgNVBAoMC1RoaXNDb21wYW55

MQwwCgYDVQQLDANSbkQxFDASBgNVBAMMC0FQcm9ncmFtbWVyMSUwIwYJKoZIhvcN

AQkBFhZ0aGlzZW1haWxAYW55d2hlcmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOC

AQ8AMIIBCgKCAQEAxw88IpEnzdUAd6e/BKQ8qWy27oOBbd7/NqERWL81KdNhk+Ux

AEKtSSHrCLDvYAurpZYxjLlOAoQR4HOGWMWVoTlCNJ+zPpBLxdFkxEfYnZytxe7i

Lxyk7U/ITG8ZbtJeNq+6I4Ryoi16vnaUMG6DiOYkipWAwAdgJHWEQEH5Y7KsfWS/

Rp3pmA3uvws2P3m0cBjit8G2nh2LjnbaKN1qJfxfllAfl47lS4Jxi1a4fATE+TVz

WXzSahCkh/kqcsZV8dKep2iluqxV95/CWcuwu695GrwUs4p3jrDNWcPOiPgCEMEl

3jDWCAfMBUPFJy/cgykFiIGpRDA798TI/LRy8QIDAQABo1AwTjAdBgNVHQ4EFgQU

foXzBv2lgcml/BiFLSIOPVD480swHwYDVR0jBBgwFoAUfoXzBv2lgcml/BiFLSIO

PVD480swDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEANeoIdSqDZPoC

k0DSICKps7DoRRptkfrJRWanUanyHMcYNqRCzlyPTrv3ASxyQ3AOIwN7imweQAl4

G9pef1NOUGbWt7V1iRsvQdhXgS6mAtNAb8PDkNvDzPVoJBAZAJYLjWVw43u+gAj5

0klHs2AXFS9+wsIMoND3W49w31UJt/VkYC+b7VUACnwNRxNVG1gDKL7IvT15tlnp

8hjEyX9aSavKZefIVwVXJfyAbI58Jz82IVZtbrlP01Mc8qk97I8HEwhybCkfMYcE

VzTFAfaWxI5mwXkukKG0QCZ8OGpsKFy02mCnQpseeLItScI+OAAcj+bt2+J7AhWp

VdHsFpJweA==

-----END CERTIFICATE-----


 

   3.2 CA(Certificate Authorit)


      3.1.1 별 가이드 이용


  3.1.2 CA List

     * https://letsencrypt.org/ : 무료


   3.2 인증서 파일 정보 확인

   # openssl x509 -text -in <File name> -noout(optional)


$ openssl x509 -text -in ./cert.crt

Certificate:

    Data:

        Version: 1 (0x0)

        Serial Number: 9822855223582509766 (0x8851cac839b9cac6)

    Signature Algorithm: sha256WithRSAEncryption

        Issuer: C=KR, ST=Seoul, L=Junggu, O=StudyLang, OU=RnD, CN=AProgrammer/emailAddress=aprog@thiscompany.com

        Validity

            Not Before: Jan  2 23:41:05 2018 GMT

            Not After : Jan  2 23:41:05 2019 GMT

        Subject: C=KR, ST=Seoul, L=Junggu, O=StudyLang, OU=RnD, CN=AProgrammer/emailAddress=aprog@thiscompany.com

        Subject Public Key Info:

            Public Key Algorithm: rsaEncryption

                Public-Key: (2048 bit)

                Modulus:

                    00:c7:0f:3c:22:91:27:cd:d5:00:77:a7:bf:04:a4:

                    3c:a9:6c:b6:ee:83:81:6d:de:ff:36:a1:11:58:bf:

                    35:29:d3:61:93:e5:31:00:42:ad:49:21:eb:08:b0:

                    ef:60:0b:ab:a5:96:31:8c:b9:4e:02:84:11:e0:73:

                    86:58:c5:95:a1:39:42:34:9f:b3:3e:90:4b:c5:d1:

                    64:c4:47:d8:9d:9c:ad:c5:ee:e2:2f:1c:a4:ed:4f:

                    c8:4c:6f:19:6e:d2:5e:36:af:ba:23:84:72:a2:2d:

                    7a:be:76:94:30:6e:83:88:e6:24:8a:95:80:c0:07:

                    60:24:75:84:40:41:f9:63:b2:ac:7d:64:bf:46:9d:

                    e9:98:0d:ee:bf:0b:36:3f:79:b4:70:18:e2:b7:c1:

                    b6:9e:1d:8b:8e:76:da:28:dd:6a:25:fc:5f:96:50:

                    1f:97:8e:e5:4b:82:71:8b:56:b8:7c:04:c4:f9:35:

                    73:59:7c:d2:6a:10:a4:87:f9:2a:72:c6:55:f1:d2:

                    9e:a7:68:a5:ba:ac:55:f7:9f:c2:59:cb:b0:bb:af:

                    79:1a:bc:14:b3:8a:77:8e:b0:cd:59:c3:ce:88:f8:

                    02:10:c1:25:de:30:d6:08:07:cc:05:43:c5:27:2f:

                    dc:83:29:05:88:81:a9:44:30:3b:f7:c4:c8:fc:b4:

                    72:f1

                Exponent: 65537 (0x10001)

    Signature Algorithm: sha256WithRSAEncryption

         5e:dd:60:47:29:54:25:44:1d:9b:83:d5:31:57:b9:34:a9:af:

         a3:cb:c3:b2:0c:62:bb:b4:66:d0:8e:0f:f6:b5:cd:86:60:91:

         66:94:99:28:eb:fb:c2:08:f3:c5:4e:d0:29:e2:fe:60:79:ea:

         cd:2c:2c:6a:ce:4f:ce:1c:11:c7:21:c2:33:6d:b0:b5:65:e7:

         ae:e6:9a:e4:f5:e9:a4:5e:ab:8c:80:0f:61:56:95:3e:33:5b:

         36:73:9d:01:bb:a7:f1:8e:1a:99:4f:0f:b8:ff:b8:79:a3:c8:

         1e:8c:41:46:67:c6:30:d5:d3:52:76:04:9b:af:2d:9a:4e:6b:

         90:2f:86:7c:22:28:13:5e:81:1c:f8:f5:0f:53:65:c1:b8:a4:

         a4:45:c0:4c:7b:b7:99:20:4b:5d:36:bc:bf:f3:5a:21:93:60:

         e0:b2:e4:1c:45:73:b6:b8:b0:2a:39:38:3c:da:da:cf:f3:25:

         65:59:aa:a4:ef:bb:3b:2d:47:1a:75:3d:43:2c:ad:06:e7:4d:

         db:d4:5a:d3:76:5b:e8:7f:25:4c:cd:20:c5:a4:8a:d4:ae:b2:

         78:fc:4b:8b:88:2f:d4:87:7b:bb:eb:0c:a5:a2:b4:ac:b5:14:

         10:10:ae:3d:c2:c5:4d:1f:cc:39:f3:1a:64:fa:2d:e6:47:d4:

         9b:49:d3:7a

-----BEGIN CERTIFICATE-----

MIIDljCCAn4CCQCIUcrIObnKxjANBgkqhkiG9w0BAQsFADCBjDELMAkGA1UEBhMC

S1IxDjAMBgNVBAgMBVNlb3VsMQ8wDQYDVQQHDAZKdW5nZ3UxEjAQBgNVBAoMCVN0

dWR5TGFuZzEMMAoGA1UECwwDUm5EMRQwEgYDVQQDDAtBUHJvZ3JhbW1lcjEkMCIG

CSqGSIb3DQEJARYVYXByb2dAdGhpc2NvbXBhbnkuY29tMB4XDTE4MDEwMjIzNDEw

NVoXDTE5MDEwMjIzNDEwNVowgYwxCzAJBgNVBAYTAktSMQ4wDAYDVQQIDAVTZW91

bDEPMA0GA1UEBwwGSnVuZ2d1MRIwEAYDVQQKDAlTdHVkeUxhbmcxDDAKBgNVBAsM

A1JuRDEUMBIGA1UEAwwLQVByb2dyYW1tZXIxJDAiBgkqhkiG9w0BCQEWFWFwcm9n

QHRoaXNjb21wYW55LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB

AMcPPCKRJ83VAHenvwSkPKlstu6DgW3e/zahEVi/NSnTYZPlMQBCrUkh6wiw72AL

q6WWMYy5TgKEEeBzhljFlaE5QjSfsz6QS8XRZMRH2J2crcXu4i8cpO1PyExvGW7S

XjavuiOEcqIter52lDBug4jmJIqVgMAHYCR1hEBB+WOyrH1kv0ad6ZgN7r8LNj95

tHAY4rfBtp4di4522ijdaiX8X5ZQH5eO5UuCcYtWuHwExPk1c1l80moQpIf5KnLG

VfHSnqdopbqsVfefwlnLsLuveRq8FLOKd46wzVnDzoj4AhDBJd4w1ggHzAVDxScv

3IMpBYiBqUQwO/fEyPy0cvECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAXt1gRylU

JUQdm4PVMVe5NKmvo8vDsgxiu7Rm0I4P9rXNhmCRZpSZKOv7wgjzxU7QKeL+YHnq

zSwsas5PzhwRxyHCM22wtWXnruaa5PXppF6rjIAPYVaVPjNbNnOdAbun8Y4amU8P

uP+4eaPIHoxBRmfGMNXTUnYEm68tmk5rkC+GfCIoE16BHPj1D1NlwbikpEXATHu3

mSBLXTa8v/NaIZNg4LLkHEVztriwKjk4PNraz/MlZVmqpO+7Oy1HGnU9QyytBudN

29Ra03Zb6H8lTM0gxaSK1K6yePxLi4gv1Id7u+sMpaK0rLUUEBCuPcLFTR/MOfMa

ZPot5kfUm0nTeg==

-----END CERTIFICATE-----






변환 옵션

   1. PEM -> DER 

   # openssl x509 -inform PEM -in <Input PEM File Name> -outform DER -out <Output DER File Name>   

   2. DER -> PEM 

   # openssl x509 -inform DER -in <Input DER File Name> -output PEM -out <Output PEM File Name>

   3. PEM -> PKCS#12(PFX) 변환

   # openssl pkcs12 -in <Input PFX File Name> -out <Output PEM File Name> -nodes

   




정보 출처

https://blog.hangadac.com

Ubuntu 16.04.2se Man Page

반응형
반응형



* 용어 정리


1. SSL(Secure Socket Layer) : Netscape에서 개발, SSLv3까지 개발

   1.1 v1.0 : 공개된 적 없음

   1.2 v2.0 : 1995년 2월 릴리즈 되엇으나 보안 결함이 많음

   1.3 v3.0 : v2.0의 보안결함 보안되어 1996년 릴리즈됨


2. TLS(Transport Layer Security, 전송 계층 보안) : IETF 표준 규약(RFC 5246), SSL v3.0 기반 계승됨, 

   2.1  TLS 3단계 기본 절차

        지원가능한 알고리즘 교환 -> 키 교환, 검증 -> 대칭키 암호로 암호화 하고 메시지 인증


3. CSR(Certificate Signing Request) : 인증 서명 요청                

   3.1 인증기관(CA:Certificate Authority)에서 인증서를 얻기 위한 서명 키 및 암호화 키에 대한 증서 서명 요청 파일), 인증기관(CA)는 이 파일을 이용하여 서명 인증서, 암호화 인증서 및 키 저장소로 가져올 CA인증서를 생성함.


4. CRT(Certificate) : 인증서. 인증서 파일의 확장자로 쓰임


5. CA(Certificate Authority) : 공인 인증 기관. 서비스 요금을 부과하는 상업 인증기관과 무료 인증기관도 잇으며, 기업, 단체별로 운영하는 사설 인증기관이 있음.


6. PKI(Public Key Infrastructure) : 공개키 기반 구조

   6.1 공개 키 암호 방식을 바탕으로 한 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자, 정책 및 제도 등을 총칭하여 일컫는다.


7. PKCS(Public-Key Cryptography Standard) : 공개 키 암호 표준

   7.1 RSA에서 정한 공개 키 암호 사용 방식에 대한 표준 프로토콜(https://ko.wikipedia.org/wiki/%EA%B3%B5%EA%B0%9C_%ED%82%A4_%EC%95%94%ED%98%B8_%ED%91%9C%EC%A4%80)


8. X.509 : 공개키 기반 인증서 형식 표준

   8.1 https://ko.wikipedia.org/wiki/X.509


9. PEM(Private-enhanced Electronic Mail) : ASCii 헤더로 묶인 Base64 인코드 DER 형식 저장된 인증서 형식. 확장자로 pem이 사용됨


10. PFX(Personal inFormation eXchange), P12 : PKCS#12 암호화 파일 포멧. 사용자의 개인 키, 인증서, 기타 기밀 정보를 저장 및 운송하기 위한 휴대용 포멧


11. PFCS#12 : 암호화 파일 포멧. 인증서와 개인키가 같이 들어있음

 












* DER, PEM, CRT, CER, KEY 차이


1. DER, PEM

   - der, pem 확장자로도 사용됨, Encoding 종류,

   - DER(.der) : DER Encoding Certificates.  CER, CRT 확장자에서 사용되기도 함

   - PEM(.pem) : "--BEGIN .." 등으로 시작되는 ASCII(Base64) Prefix Data를 포함하고 있음.


2. CRT, CER, KEY

   - Common Extensions

   - CRT(.crt) : Certificates 확장자. Binary DER 혹은 ASCII PEM등으로 Encoding되어 있을 수 있음.
            일반적으로 NIX System(Unix, Linux)에서 사용됨.

   - CER(.cer) : 주로 MS에서 사용되며 CRT와 동일함. IE에서 인식되며 MS cryptoAPI 명령어를 이용해 생성가능

   - KEY(.key) : Binary DER 혹은 ASCii PEM으로 Encoding될 수 있으며 Public/Private PKCS#8 Key에 사용됨


CRT와 CER는 서로 변환 가능함




반응형
반응형





1. iTunes에서 아이폰을 백업함

   iTunes -> 기기 -> sms를 옮길 핸드폰 우클릭 -> 백업 -> 암호화 안함 선택


2. 백업 파일 이동

   C:\Users\<계정이름>\AppData\Roaming\Apple Computer\MobileSync\Backup\


3. 백업할 파일 이름 선택 

   3d0d7e5fb2ce288813306e4d4636395e047a3d28 파일을 찾는다. 없으면 다시 백업 확인


4. 아래 사이트에서 파일 변환 수행함.  

   http://faked.org/isms2droid/


5. Play Store에서 SMS Backup 앱을 다운받음


6. 실행후 복구를 선택하고 문자메시지를 체크함(Restore full backup)


7. 복구 확인함


2017년 12월 기준으로 Note8과 같은 경우 초기 시작에 Direct 연결 및 기본 앱으로 

문자 전화번호/전화내역 등 기본적인 정보는 자동으로 복구를 할 수 있으므로 해당 내용이 필요없음.



반응형
반응형

 

 

 

1. 프로젝트 생성

   FILE > (위치 설정/저장) 

2. Model Wizard 설정

   Model Wizard 설정창 > Core Modeling > 간단하게 Class정도만 선택

3. Import 

   Project Browser에서 System에 기존 예제 삭제, Class1,2,3 interface 1삭제, 이름변경 > 우클릭 > Import from source code 선택 > Language 선택(C++, JAVA, VBASIC, PHP PYTHON . . . )

4. Import 코드 선택

   필요 최소 코드 선택 

5. 가시성 있게 정렬

반응형
반응형




아래의 포스팅에 이어지는 부분인다. LCD 드라이버 인식을 못한 사람은 아래의 포스팅을 참고하기 바란다.

[라즈베리파이] 3.5 inch TFT LCD 인식시키기...http://onestepcloser.tistory.com/123



 1. Calibration을 위한 패키지 설치 및 xinput_calibrator 설치


 Calibration을 하기 위해 아래의 패키지 들이 필요하다. X를 실행시키면서 별도의 Calibration을 실행해서 해줘야 할 것 같았는데, 아래의 방법대로 끝내면 Pi를 재 시작할 때에 Calibration 화면을 통해 설정 할 수 있다.


pi@raspberrypi ~ $ sudo apt-get install libtool libx11-dev xinput autoconf libx11-dev libxi-dev x11proto-input-dev -y
pi@raspberrypi ~ $ git clone https://github.com/tias/xinput_calibrator
pi@raspberrypi ~ $ cd xinput_calibrator/
pi@raspberrypi ~ $ ./autogen.sh
pi@raspberrypi ~ $ make
pi@raspberrypi ~ $ sudo make install



 2. Calibration Script Download 및 Setup


pi@raspberrypi ~ $ cd ~
pi@raspberrypi ~ $ wget http://ozzmaker.com/piscreen/xinput_calibrator_pointercal.sh
pi@raspberrypi ~ $ sudo cp ~/xinput_calibrator_pointercal.sh /etc/X11/Xsession.d/xinput_calibrator_pointercal.sh
pi@raspberrypi ~ $ sudo vi /etc/xdg/lxsession/LXDE/autostart


 3. X Window 실행 


 아래와 같이 X Window를 실행 시키면 LCD에 Pi X가 실행된 것을 확인 할 수 있다ㅣ.

 아래와 같이 X가 실행되지 않을 경우 "99-fbturbo.conf"을 확인해 본다.


pi@raspberrypi ~ $ FRAMEBUFFER=/dev/fb1 startx



 4. Boot시 자동적으로 PiScreen로 X Window를 실행할 수 있도록 설정


 간단히 rc.local에 starx를 실행하게끔 실행하면 끝!


pi@raspberrypi ~ $ sudo nano /etc/rc.local


 rc.local에 아래 문장을 exit 하기 전에 실행하게끔 추가해 준다.


 su -l pi -c "env FRAMEBUFFER=/dev/fb1 startx &"


 5. Calibration


 Pi를 Reboot하면 Calibration을 할 수 있다. Calibration을 하지 않으면 좌표가 정확하지 않을 뿐더러 드래그의 방향성 또한 제대로 설정되지 않아 엉망이다. Reboot하여 Calibration을 마친뒤 정상적으로 동작하는 X를 확인할 수 있다.




참고 출처 : http://ozzmaker.com/



반응형
반응형



 라즈베리파이를 구매하면서 매번 HDMI 케이블을 모니터에 연결하기 귀찮아서 LCD하나를 알리익스프레스에서 구매했다.

 

 가격은 $11.88


 구매는 했는데 드라이버 설치 방법 같은건 Description이나 Specification등에 없다.

 이제 막 라즈베리파이를 시작한 입장에서 멘붕만 온다 어떻게 해야 할지 모르겠다.

 5번의 이미지 초기화를 하다 보니 LCD에 X를 띄우는 것 까지 성공해서 설치 방법 정리해 놓는다.


 일단 구매한 3.5" TFT LCD의 Specification은 아래와 같다.

LCD Type TFT

LCD Interface SPI

Touch Screen Type Resistive

Touch Screen Controller XPT2046

Colors 65536

Backlight LED

Resolution 320*480 (Pixel)

Aspect Ratio 8:5

Power Consumption TBD

Backlight Current TBD

Operating Temp. (Centigrade) TBD

 

 일단 아래와 같은 방법을 설치를 완료 했다.

 

 1. Raspberry Pi 업데이트 및 패키지 없데이트


설치를 시작하기에 앞서 기본 패키지 및 Pi를 업데이트 한다.

 pi@raspberrypi:~ $ sudo rpi-update
 pi@raspberrypi:~ $ sudo reboot
 . . .  Updating . . . and Rebooting . . .
 pi@raspberrypi:~ $ sudo apt-get update
 pi@raspberrypi:~ $ sudo apt-get upgrade
 pi@raspberrypi:~ $ sudo reboot

 


 2. PiScreen Driver 활성화 및 Reboot


 라즈베리파이와 같은 embedded platform에는 BIOS가 없다. 다만 BIOS같은 설정값을 저장할 수 있는 config.txt.라는 파일이 있다. 이 파일은 Linux가 초기화 하기 전에 gpu에 의해 읽힌다. 그러므로 "bootcode.bin", "start.elf"와 함께 SD카드의 윗부분에 위치하게 된다. 이 config.txt.에 설정을 추가해준다.

 pi@raspberrypi:~ $ sudo vi /boot/config.txt


 맨 마지막 줄에 아래와 같이 삽입한다.

 dtoverlay=piscreen,speed=16000000,rotate=90

 이 부분은 테스트를 해보면서 점점 높게 설정 한다.

 

pi@raspberrypi:~ $ sudo reboot

 리붓 후에 Pi는 백색으로 켜져 있던게 검은색으로 바뀌어 있어야 한다.


 3. Quick Test

 

  아래와 같이 Quick Test를 시행해 본다.

pi@raspberrypi:~ $ sudo apt-get install fbi
pi@raspberrypi:~ $ wget http://ozzmaker.com/piscreen/image-test.gif
pi@raspberrypi:~ $ sudo fbi -noverbose -T 1 -a -d /dev/fb1 image-test.gif

 실행하면 아래와 같은 이미지가 출력되는 것을 확인한다.


 이미지가 정상적으로 출력되지 않을 경우 speed=16000000에서 8000000으로 조절하며 테스트 해본다.



 4. 기본 출력 변경

 

 기본적으로 Boot을 하게 되면 HDMI를 찾게 된다. HDMI가 아닌 SPI로 X를 출력하기 위해서 아래의 파일을 이용해서 설정을 변경해 준다.

pi@raspberrypi:~ $ sudo vi /usr/share/X11/xorg.conf.d/99-fbturbo.conf

 설정 파일에 나오는 fb는 "Frame Buffer"로 Buffer를 어디에 지정할 것인가를 설정한다. 설정 파일에서 fb0은 HDMI가 설정 되어 있다. fb0을 fb1로 변경해준 다음 reboot해준다.

# Option          "fbdev" "/dev/fb0"
Option          "fbdev" "/dev/fb1"


 

pi@raspberrypi:~ $ sudo reboot




참고 출처 : http://ozzmaker.com/

반응형
반응형



아이튠즈 업데이트를 하니 아이폰을 인식하지 못한다. 아이폰의 최대 단점... 아이튠즈...


아래의 방법들이면 어느정도 해결이 가능한 것 같다.


1. 아이폰이 순간 인식이 안되었을 경우 

   - 제어판 - 서비스 - AppleMobileDeviceSupport 를 중지-> 시작 혹은 재시작을 수행함 

   - 시스템 - 장치관리자 에서 직렬 디바이스 메뉴에서 AppleMobileDeviceSupport가 물음표가 사라졌는지 확인한다.

2. 컴퓨터 리부팅 핸드폰 리부팅 그리고 위 방법으로도 안되는 경우

   - 아이튬즈 재설치를 시도해본다

   - 아이튠즈 재설치를 해도 안되는 경우 다운받은 아이튠즈 설치파일을 압축 프로그램으로 열어보면

      AppliMobileDeviceSupport<XXXX>.msi라는 파일이 있다

     i) 한번 실행하여 기존 드라이버 삭제

     ii) 다시 한번 실행하여 드라이버 재설치


2번으로 이번 문제를 해결했다 아무래도 윈도우 업데이트 혹은 아이튠즈 업데이트로 드라이버가 꼬인거같다.

이런건 테스트가 부족해서 생긴문제 인거같은데 아이폰 4 이후 그닥 만족감이 줄어만 가는게 아쉽다.



반응형
반응형




 lua에서는 debug를 이용하면 다양하게 사용할 수 있는데(backtrace같은  유용한..)

 line을 찍어가며 디버깅 하고 싶을때에는 그냥 아래와 같이 붙여넣기로 하면 유용하다.

 print(debug.getinfo(1).currentline)

 

반응형
반응형






 작업 도중 비정상적인 종료를 하게 되었는데, 다시 열면 임시 저장 목록이 생길 줄 알고 임시저장 파일을 삭제하지 않기로 프로그램을 종료했는데 다시 파일을 여니 임시저장 목록은 생기지 않고, 임시저장 파일을 삭제하겠냐는 말만나온다. 평소같으면 귀찮아서 다시 파일을 수정하겠지만 수정한 내용 기억도 안나고, 양도 많아서 임시파일을 찾아서 복구 하였다.


 임시파일을 찾기 위해서는 아래와 같이 숨김파일 보기를 활성화 해야 경로를 쉽게 찾아 들어갈 수 있다.

 도구 > 폴더옵션 > 보기 > 숨기 파일 및 폴더 > 숨김 파일, 폴더 및 드라이브 표시 체크


 파워포인트의 임시 파일위치는 아래와 같다.

 C:\Users\[USER 계정]\AppData\Roaming\Microsoft\PowerPoint 


 해당 임시 폴더 계정을 보면 *.tmp라는 임시 파일이 있다.

 임시 파일의 확장자를 ppt로 변경하고, 파일을 오픈하면 임시 파일을 오픈할 수 있다.

 이 파일을 저장하여 사용하자. 

 (pptx파일을 사용중이었어서 *.pptx로 변경시 오픈이 안되는 경우를 보았다. 참고바람)

 






반응형
반응형


화면 캡쳐 프로그램 중에서 나름 괜찮은 툴을 찾았다.



 그린샷(Greenshot) : http://getgreenshot.org/



그린샷(Greenshot)이라는 프로그램인데, 오픈소스(Opensource)이다. 개인 및 상업적 이용에도 무료임을 홈페이지에서 확인할 수 있다.




한국어를 지원하고, 처음 설치가 되면 영어로 되어있으나 설정에서 한국어로 변경이 가능하지만,

약간 어정쩡하게 번역이 되거나 다 번역이 안된걸 보면 다만 왠지 Google Translate 을 이용한거 같다는 생각이 많이 든다.


처음 설치가 되면 트레이 아이콘으로 실행된다.

트레이 아이콘을 더블클릭하면 현재 저장 디렉토리로 이동을 하며 마우스 오른쪽 클릭으로 설정을 할 수 있다.





 캡쳐 영역 지정을 하면 확대 포인터로 챕쳐 영역을 지정할 수 있고, 캡쳐를 하면 다른이름으로 저장/바로 저장/클립보드/프린터 등으로 처리를 할 수 있는데, 이 바로 저장하기가 편리하게 사용된다. 괜히 이름 생각할 필요없이 바로 바로 캡쳐해서 저장할 수 있어서 편리하다.





 이미지 편집기 기능을 제공한다. 스크린 샷 이후 간단한 편집 후 저장이 가능하다.



반응형

+ Recent posts