SSL証明書をOpenSSLコマンドで取得、確認する方法
スポンサーリンク
このドキュメントの内容は、以下の通りです。
はじめに
インターネットでは、TCP/IPを呼ばれるプロトコルを利用して通信しています。TCPには、暗号化の機能はありません。そのため、通信データは、平文(ひらぶん)と呼ばれる誰でも中身を見ることができるデータとして、通信経路に流れています。インターネットでは、サービスにログインするために、IDとパスワードが利用されたり、アマゾンなどのeコマースサイトでは、商品の購入時にクレジットカードが利用されます。グーグルなどのGmailと呼ばれるメールサービスや facebook のメッセンジャーやLINEのメッセンジャーアプリでは、人と人の会話のデータが行き交っています。認証情報、決済情報、メッセージなどが流れるインターネットは、プライバシーの保護やセキュリティの観点で、通信のデータの内容を暗号化する必要がありました。暗号化されているインターネットの通信の多くは、TLSと呼ばれるプロトコルとTLSをサポートしているライブラリを利用して、データを暗号化して通信されています。このTLSのライブラリとして、OpenSSL が広く利用されています。通信を利用するアプリケーションの開発においては、ソケットと呼ばれるライブラリを利用して、通信プログラムを作成します。通信を暗号化するソフトウェアは、ソケットと組み合わせて、OpenSSLのライブラリで提供されるAPIを利用して、通信の暗号化を実現します。
多くのウェブサイトでは、TLSの通信をサポートしています。インターネットを利用している一般人の日常生活において SSL証明書は、HTTPSのサイトにアクセスしたときに、ブラウザが自動的に、サーバ証明書をサーバから取得し、バリデーション(検証)しています。証明書の検証とは、証明書が正しい認証局から発行されたのか、証明書の有効期限は問題ないか、などを確認することです。
ブラウザの機能を利用して、証明書の内容を確認することができますが、今回は、OpenSSLと呼ばれるコマンドで取得する方法について紹介します。
OpenSSLコマンドをインストールする
Ubuntuでは、以下のパッケージをインストールします。sudo apt install openssl
CentOSでは、以下のパッケージをインストールします。
sudo dnf install openssl
FreeBSDでは、以下のパッケージをインストールします。
sudo pkg install openssl
証明書を取得する
SSL証明書をコマンドラインで取得するには、OpenSSLコマンドを使うと、簡単に取得して、確認することができます。% openssl s_client -connect login.yahoo.co.jp:443 -showcerts
login.yahoo.co.jp サーバのSSL証明書を取得しました。
CONNECTED(00000004) --- Certificate chain 0 s:/C=JP/ST=Tokyo/L=Minato-ku/O=Yahoo Japan Corporation/OU=l07.login.kks.2010/CN=login.yahoo.co.jp i:/C=JP/O=Cybertrust Japan Co., Ltd./CN=Cybertrust Japan Public CA G1 -----BEGIN CERTIFICATE----- MIIDtDCCAx2gAwIBAgICKE0wDQYJKoZIhvcNAQEFBQAwWjELMAkGA1UEBhMCSlAx IzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMSYwJAYDVQQDEx1D eWJlcnRydXN0IEphcGFuIFB1YmxpYyBDQSBHMTAeFw0xMDA4MTIwMTEzMzhaFw0x MTA4MTgxNDU5MDBaMIGMMQswCQYDVQQGEwJKUDEOMAwGA1UECBMFVG9reW8xEjAQ BgNVBAcTCU1pbmF0by1rdTEgMB4GA1UEChMXWWFob28gSmFwYW4gQ29ycG9yYXRp b24xGzAZBgNVBAsTEmwwNy5sb2dpbi5ra3MuMjAxMDEaMBgGA1UEAxMRbG9naW4u eWFob28uY28uanAwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALDYRUgIhTP4 025c0BA/uKdJBQLQVqla+S954qFCnB8jCZ4nf6C1OSIZHrEnNlIgfHvXl9AuskuE iFhJEc2S/IhMsVJ1tGa+vIPSb3Lxxi4Qsq9MO0ekJmWVwUJnyDhmw0H/ccoDnERG JASAxcDscGCPmOyVXlx3ioy+Y+CqdzsHAgMBAAGjggFUMIIBUDAJBgNVHRMEAjAA MIG/BgNVHSAEgbcwgbQwgbEGCCqDCIybEQEBMIGkMFcGCCsGAQUFBwICMEsaSUZv ciBtb3JlIGRldGFpbHMsIHBsZWFzZSB2aXNpdCBvdXIgd2Vic2l0ZSBodHRwczov L3d3dy5jeWJlcnRydXN0Lm5lLmpwIC4wSQYIKwYBBQUHAgEWPWh0dHBzOi8vd3d3 LmN5YmVydHJ1c3QubmUuanAvU3VyZVNlcnZlci9yZXBvc2l0b3J5L2luZGV4Lmh0 bWwwCwYDVR0PBAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBV BgNVHR8ETjBMMEqgSKBGhkRodHRwOi8vc3VyZXNlcmllcy1jcmwuY3liZXJ0cnVz dC5uZS5qcC9TdXJlU2VydmVyL2N0anB1YmNhZzEvY2RwLmNybDANBgkqhkiG9w0B AQUFAAOBgQC0BbNyidWhQb+qc1poaWnsE+ykraRAE90AYhDbw9CR0rtFPBmxMqVy WLAKzpbszaxenCWY8QTBS87R98VILjl9yiHIbgspuf26swHiWWCvwYqWyJm7T41X wTIN6xhJ7Le1nscHBfzD+dAgfCeHkHqGJik/ivz2N+07fUDjjlC7Qw== -----END CERTIFICATE----- 1 s:/C=JP/O=Cybertrust Japan Co., Ltd./CN=Cybertrust Japan Public CA G1 i:/C=US/O=GTE Corporation/OU=GTE CyberTrust Solutions, Inc./CN=GTE CyberTrust Global Root -----BEGIN CERTIFICATE----- MIIDuTCCAyKgAwIBAgIEBydcJTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJV UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds b2JhbCBSb290MB4XDTEwMDIyNDIwMDUxMFoXDTE4MDgxMzIzNTkwMFowWjELMAkG A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMSYw JAYDVQQDEx1DeWJlcnRydXN0IEphcGFuIFB1YmxpYyBDQSBHMTCBnzANBgkqhkiG 9w0BAQEFAAOBjQAwgYkCgYEAvr+27eTxTAKYC1p8wWkYIEiSAwgS0lI5z/TMn2zq Oqv/Rtv03eUx7QGJkKxEdaYxX6NBiTaXq/RDfUwYFV5zyqqvcv9KmMyVJFqNn2eY xs6h5khR+Ys8tDKC7BWpezWmhz6ELiFLbdF67YzLqOGIDxx1d3lFK3vLb7sIlHX9 WskCAwEAAaOCAW8wggFrMBIGA1UdEwEB/wQIMAYBAf8CAQAwUwYDVR0gBEwwSjBI BgkrBgEEAbE+AQAwOzA5BggrBgEFBQcCARYtaHR0cDovL2N5YmVydHJ1c3Qub21u aXJvb3QuY29tL3JlcG9zaXRvcnkuY2ZtMA4GA1UdDwEB/wQEAwIBBjCBiQYDVR0j BIGBMH+heaR3MHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUgQ29ycG9yYXRp b24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3SCAgGlMEUGA1UdHwQ+MDww OqA4oDaGNGh0dHA6Ly93d3cucHVibGljLXRydXN0LmNvbS9jZ2ktYmluL0NSTC8y MDE4L2NkcC5jcmwwHQYDVR0OBBYEFFqES7uXWOJC4IyqnKm9Ygds5JarMA0GCSqG SIb3DQEBBQUAA4GBADFT6HyLCfSYdwsHBeQAPvNKrzz+6uCZqk7yzsGUrz3AC2in /W/oL3BtIlm1fvVixTav6QtMOY+ATqQ3SWl4NTLWtfn5SLyYFvz/Pvrf+Es+ZnJP Ahz40hL0vUztVrCic8hPgs4NtMSvDkNwbgjU7LDBxH91GJl2fWjSE2w3UjRW -----END CERTIFICATE----- --- Server certificate subject=/C=JP/ST=Tokyo/L=Minato-ku/O=Yahoo Japan Corporation/OU=l07.login.kks.2010/CN=login.yahoo.co.jp issuer=/C=JP/O=Cybertrust Japan Co., Ltd./CN=Cybertrust Japan Public CA G1 --- No client certificate CA names sent --- SSL handshake has read 2074 bytes and written 334 bytes --- New, TLSv1/SSLv3, Cipher is AES256-SHA Server public key is 1024 bit Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : AES256-SHA Session-ID: 6DB9BB24B5A26F6744ABA350B92D6B5AFCFC6EB504E2E82DAA9B242F3C688585 Session-ID-ctx: Master-Key: 8D1D127E1EA7378B9BE2B9FB3E74BE3B0151719E197C024C4855AE9A5C2E1B44422D1D9528A650219D618426C2F89052 Key-Arg : None Start Time: 1302420772 Timeout : 300 (sec) Verify return code: 0 (ok) ---
証明書の内容を確認する
上記の場合、証明書の詳細が表示されないので、SANs(Subject Alternative Names)がどうなってるのか、とかよくわかりません。そういう場合には、以下のように試します。
openssl s_client -connect サーバ名:ポート番号 -showcerts < /dev/null | openssl x509 -text
実際に試してみましょう。 ヤフー(Yahoo!JAPAN) の証明書を取得してみます。
$ openssl s_client -connect www.yahoo.co.jp:443 -showcerts < /dev/null | openssl x509 -text Certificate: Data: Version: 3 (0x2) Serial Number: 23:9b:f4:17:72:89:91:81:fa:c5:6c:b1:79:86:d4:5e:46:6b:23:54 Signature Algorithm: sha256WithRSAEncryption Issuer: C=JP, O=Cybertrust Japan Co., Ltd., CN=Cybertrust Japan Public CA G3 Validity Not Before: Jun 18 06:12:43 2018 GMT Not After : Jul 17 14:59:00 2019 GMT Subject: C=JP, ST=Tokyo, L=Chiyoda-ku, O=Yahoo Japan Corporation, OU=EDGE_201806, CN=*.yahoo.co.jp Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:b5:d3:6b:0c:e2:e7:18:26:cd:27:69:94:51:16: cf:5a:09:aa:75:54:25:46:49:e4:3d:90:2f:3a:03: e2:65:10:45:23:04:6f:87:7b:39:06:f6:70:55:90: 45:a3:24:5f:7b:50:79:28:7a:05:b3:68:2f:50:c8: b1:57:58:4c:7a:97:5c:37:52:c3:ac:2e:91:a6:75: 7b:82:1b:0f:99:18:52:e8:fc:a8:55:1c:04:d4:cd: 9a:a2:1b:04:cf:f0:c4:c5:99:1c:61:b9:f2:42:c3: bf:35:32:5b:6b:9c:82:c1:6b:f0:ba:0c:de:91:a1: 96:79:cc:3a:ad:1c:50:59:c1:7c:fd:07:ac:b3:53: d6:50:25:d7:d2:4f:17:e5:a7:9a:8c:a8:47:f0:2b: 9a:3d:b3:9c:b9:81:2c:10:01:ab:ac:c1:95:4a:75: 6f:e5:94:27:44:8a:fe:8a:6c:08:c8:f0:41:db:65: 22:a2:fc:34:e4:93:cf:ea:39:20:01:78:ef:a4:d9: 35:45:30:19:2c:dc:a8:9c:f7:91:59:c5:74:66:67: f9:95:bf:68:e6:44:cd:80:79:ce:8f:b7:cf:c9:91: 47:9d:5a:9c:ca:0f:a8:a4:3e:80:f5:60:0a:90:8a: e0:e1:c6:47:a9:64:4d:68:38:bf:23:ad:93:92:e4: 88:65 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Certificate Policies: Policy: 1.2.392.200081.1.1 CPS: https://www.cybertrust.ne.jp/ssl/repository/index.html Policy: 2.23.140.1.2.2 X509v3 Subject Alternative Name: DNS:*.yahoo.co.jp, DNS:*.yimg.jp, DNS:*.c.yimg.jp, DNS:*.yahooapis.jp, DNS:*.yahoobox.jp, DNS:*.yoctfs.jp, DNS:*.edge.storage-yahoo.jp, DNS:*.east.edge.storage-yahoo.jp, DNS:*.west.edge.storage-yahoo.jp, ...省略 Authority Information Access: OCSP - URI:http://ocsp.cybertrust.ne.jp/OcspServer CA Issuers - URI:http://sureseries-crl.cybertrust.ne.jp/SureServer/ctjpubcag3/ctjpubcag3_sha256.crt X509v3 Key Usage: critical Digital Signature, Key Encipherment X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Authority Key Identifier: keyid:73:A8:08:53:29:B8:15:FB:99:80:E5:C5:37:D8:F8:39:7B:A4:13:06 X509v3 CRL Distribution Points: Full Name: URI:http://sureseries-crl.cybertrust.ne.jp/SureServer/ctjpubcag3/cdp.crl X509v3 Subject Key Identifier: 37:86:D6:FA:D1:AE:14:F6:53:51:6C:6D:A4:96:CD:BB:D8:A6:68:3F CT Precertificate SCTs: Signed Certificate Timestamp: Version : v1(0) Log ID : A4:B9:09:90:B4:18:58:14:87:BB:13:A2:CC:67:70:0A: 3C:35:98:04:F9:1B:DF:B8:E3:77:CD:0E:C8:0D:DC:10 Timestamp : Jun 18 07:40:18.573 2018 GMT Extensions: none Signature : ecdsa-with-SHA256 30:46:02:21:00:96:DB:FA:58:76:13:96:9A:6A:9F:E4: 1A:0F:5F:1C:58:38:FD:27:FD:6D:4F:23:B7:9A:93:56: F0:63:14:B7:29:02:21:00:DD:90:E6:8B:91:57:30:09: 7B:E5:63:EE:3A:4E:8F:05:86:9A:20:86:95:11:83:32: D6:E4:A7:4F:26:F9:82:8D Signed Certificate Timestamp: Version : v1(0) Log ID : EE:4B:BD:B7:75:CE:60:BA:E1:42:69:1F:AB:E1:9E:66: A3:0F:7E:5F:B0:72:D8:83:00:C4:7B:89:7A:A8:FD:CB Timestamp : Jun 18 07:40:20.700 2018 GMT Extensions: none Signature : ecdsa-with-SHA256 30:44:02:20:26:43:8D:1B:04:CE:EC:65:52:12:A9:24: 0D:D0:AC:3C:73:14:3F:AA:79:D3:72:5A:FB:17:7B:45: 39:05:6B:E6:02:20:23:1F:CC:CD:D4:C9:6E:0E:07:39: 7B:A0:86:A7:CA:E2:F9:1E:9F:F3:3D:FA:E5:D7:9E:B5: 2B:7D:31:3D:A3:BC Signed Certificate Timestamp: Version : v1(0) Log ID : BB:D9:DF:BC:1F:8A:71:B5:93:94:23:97:AA:92:7B:47: 38:57:95:0A:AB:52:E8:1A:90:96:64:36:8E:1E:D1:85 Timestamp : Jun 18 07:40:22.217 2018 GMT Extensions: none Signature : ecdsa-with-SHA256 30:45:02:21:00:EA:37:FD:9B:62:BE:DE:22:AA:43:D7: 78:A8:14:50:FA:EA:41:AC:6A:2F:B3:21:51:E9:5B:AD: 29:05:75:61:D1:02:20:74:FB:08:37:EA:91:B2:A4:35: A7:6F:50:EC:5F:D6:96:A2:C9:71:98:53:ED:75:37:C0: D6:3A:58:38:92:6B:1E Signed Certificate Timestamp: Version : v1(0) Log ID : 56:14:06:9A:2F:D7:C2:EC:D3:F5:E1:BD:44:B2:3E:C7: 46:76:B9:BC:99:11:5C:C0:EF:94:98:55:D6:89:D0:DD Timestamp : Jun 18 07:40:23.277 2018 GMT Extensions: none Signature : ecdsa-with-SHA256 30:44:02:20:68:24:78:12:CC:7C:31:5E:BF:9F:A4:CD: 4E:F3:52:09:B6:13:39:FB:59:9E:37:4C:24:1B:CE:BD: 0B:3C:2C:38:02:20:66:DB:FA:DA:77:38:FA:FF:F3:01: EF:F2:98:82:9F:06:D0:A7:4E:75:1B:C2:90:0E:46:2D: 39:F5:FA:B5:F5:12 Signature Algorithm: sha256WithRSAEncryption 4f:27:a4:50:9d:4c:27:d2:58:af:10:5d:6a:d4:cc:66:60:8e: 51:80:f7:31:d9:b7:0a:de:ba:c5:5f:b1:73:9c:50:1a:bb:da: b2:b2:a2:5f:70:3f:13:05:bf:19:75:0a:8d:4c:5e:35:21:e5: d1:eb:fe:41:37:0f:46:e1:95:b2:4b:76:6b:23:99:d6:1b:4c: ee:f7:bc:52:aa:f8:44:1d:5c:18:4a:e0:a6:c4:58:6f:86:c4: 4b:55:73:89:07:61:de:0a:bd:09:aa:74:ae:09:2b:1c:a5:0b: b2:bc:cd:2c:e8:6b:6f:a2:67:8a:7b:92:19:d3:02:d2:ad:f3: 39:1a:df:bf:ad:64:70:80:8a:f9:02:0e:72:b5:b4:7c:60:43: db:f2:56:36:b2:b2:a1:de:3e:b3:f0:6b:f3:8b:a7:a9:07:63: a9:40:23:67:6c:68:58:04:c2:78:76:76:b2:39:87:29:ef:32: 1b:c3:57:54:1f:f6:31:3c:cd:0a:fc:92:b6:f7:95:37:46:70: 31:8e:ec:83:1f:b8:ae:e5:14:8d:a7:e9:63:ab:8b:af:1e:bf: 02:b6:2b:db:eb:0a:74:cd:f2:25:e6:10:7a:28:61:9f:75:42: 76:df:fd:a9:17:4d:7b:e3:d9:7b:33:f4:92:9a:f2:bc:0b:5f: 0f:31:2f:bd -----BEGIN CERTIFICATE----- 省略 -----END CERTIFICATE-----
SANsを取得する方法
SANsとは、Subject Alternative Namesの略です。SANs オプションを利用した証明書は、複数のコモンネームをサポートします。SANs オプションを利用すると複数のドメインを1つの証明書で扱えるようになります。たとえば、 www.hoge.com と login.hoge.com と hoge-img.com の3つのドメインを1つの証明書で扱えます。サブドメインなどのFQDNをたくさん利用しているウェブ事業者や CDN (コンテンツデリバリーネットワーク)の業者がSANs オプションを利用した証明書と利用しています。
上記に掲載したヤフーの証明書の内容の一部を抜粋しました。
SANs は、 X509v3 Subject Alternative Name に記載されます。
X509v3 Subject Alternative Name: DNS:*.yahoo.co.jp, DNS:*.yimg.jp, DNS:*.c.yimg.jp, DNS:*.yahooapis.jp, DNS:*.yahoobox.jp, DNS:*.yoctfs.jp, DNS:*.edge.storage-yahoo.jp, DNS:*.east.edge.storage-yahoo.jp, DNS:*.west.edge.storage-yahoo.jp,
以下のコマンドは、証明書から SANs を取り出す例です。
SANsに指定されているFQDNは、X509v3 Subject Alternative Name の中に DNS: で始まる文字列として格納されているため、 DNS でフィルター(grep)することで簡単に抽出できます。
$ openssl s_client -connect www.yahoo.co.jp:443 -showcerts < /dev/null | openssl x509 -text |fgrep DNS > dns.txt $ cat dns.txt DNS:*.yahoo.co.jp, DNS:*.yimg.jp, DNS:*.c.yimg.jp, DNS:*.yahooapis.jp, DNS:*.yahoobox.jp, DNS:*.yoctfs.jp, DNS:*.edge.storage-yahoo.jp, DNS:*.east.edge.storage-yahoo.jp, DNS:*.west.edge.storage-yahoo.jp, DNS:*.global.edge.storage-yahoo.jp, DNS:*.east.edge.storage-yahoobox.jp, DNS:*.west.edge.storage-yahoobox.jp, DNS:*.listing.yahoo.co.jp, DNS:compass.ymobile.yahoo.co.jp, DNS:*.chiebukuro.yahoo.co.jp, DNS:*.finance.yahoo.co.jp, DNS:*.auctions.yahoo.co.jp, DNS:*.shopping.yahoo.co.jp, DNS:*.travel.yahoo.co.jp, DNS:*.news.yahoo.co.jp, DNS:*.pmx.proatlas.net, DNS:yahoo.co.jp, DNS:add.dir.yahoo.co.jp, DNS:map.alpsmap.jp, DNS:ssl.map.srv.yimg.jp, DNS:ssl.api.olp.yahooapis.jp, DNS:subscription.push.yahooapis.jp, DNS:auth.carnavi.yahooapis.jp, DNS:vics.carnavi.yahooapis.jp, DNS:cm.froma.yahoo.co.jp, DNS:cgi2.r-agent.yahoo.co.jp, DNS:info.hatalike.yahoo.co.jp, DNS:movie.chocotle.yahoo.co.jp, DNS:opetool.bylines.news.yahoo.co.jp, DNS:tool.bylines.news.yahoo.co.jp, DNS:poiedit.map.yahoo.co.jp, DNS:*.ane.yahoo.co.jp, DNS:pf.carnavi.yahooapis.jp, DNS:rf.carnavi.yahooapis.jp, DNS:assist.search.yahooapis.jp, DNS:suggest.search.yahooapis.jp, DNS:arc.help.yahoo.co.jp, DNS:personalapp.news.yahooapis.jp, DNS:cksync.pdsp.yahoo.co.jp, DNS:suggest.auctions.yahooapis.jp, DNS:ssl-tools.kainavi.search.yahoo.co.jp, DNS:yoshimoto.gyao.yahoo.co.jp, DNS:lyrics.gyao.yahoo.co.jp, DNS:m.gyao.yahoo.co.jp, DNS:im.ov.yahoo.co.jp, DNS:xml.listing.yahoo.co.jp, DNS:app.news.yahooapis.jp, DNS:feedback.premiads.yahoo.co.jp, DNS:feedback.advertising.yahoo.co.jp, DNS:feedback.promotionalads.yahoo.co.jp, DNS:frame.games.yahoo.co.jp, DNS:sandbox.frame.games.yahoo.co.jp, DNS:*.yjtag.yahoo.co.jp, DNS:*.shopping.c.yimg.jp, DNS:*.yjtag.jp, DNS:*.ys-insurance.co.jp, DNS:www.yjcard.co.jp, DNS:www.yahoo-help.jp, DNS:m.yahoo-help.jp, DNS:shopping.geocities.jp, DNS:*.xml.listing.yahoo.co.jp, DNS:app.commerce21.co.jp, DNS:biz.marketing.yahoo.co.jp, DNS:portal.yadui.business.yahoo.co.jp
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12