HTTPS機能の有効化

現在主要ブラウザ開発各社はセキュリティー向上のため全面的なhttpsへの移行を推奨しています。(https://www.digicert.ne.jp/blog/beginning-always-https.html)実際に、既にhttpsに完全移行済のサイトも2018年1月18日時点でウェブ全体の58%に達しています。(追記 2019年3月時点で76.9%にまで上昇しています)→https://httparchive.org/trends.php ニコニコ動画もその例に漏れずhttpsに移行するものと思われます。(2018年03月23日追記、遂にDMC配信機能にhttpsが導入されたため、ニコニコ動画の正常な利用のためにはhttps機能の有効化は必須になりました)



証明書管理ユーティリティを作成しました:CertsAutoInsall.bat
このユーティリティはWindows証明書ストア用のものです
Firefoxではabout:configを開き「security.enterprise_roots.enabled」をtrueにすることでWindows証明書ストアのルート証明書を認識させることができます
もちろんこの機能を有効化せずに別途手動で証明書をインストールして使うことも可能です
+ソースコード
@echo off
rem certmgr.msc
set TREE=0
echo ※このバッチファイルの実行には管理者権限が必要です バッチファイルを右クリック>管理者として実行(A)
echo ※事前にgenCerts.batを実行してからこのバッチファイルを起動してください
echo よろしいですか?
pause
:ROOP
echo --------------------------------------
echo [1]証明書の更新
echo [2]証明書の削除
echo [3]証明書の新規インストール(既にインストール済みの場合は二重になります)
echo [4]証明書ストアをダンプ
echo [5]終了
echo --------------------------------------
set /p TREE=選択してください:
 
if %TREE%==1 (
certutil -delstore ROOT "NicoCache_nl CA"
certutil -addstore ROOT %~dp0certs\ca.cer
)else if %TREE%==2 (
certutil -delstore ROOT "NicoCache_nl CA"
)else if %TREE%==3 (
certutil -addstore ROOT %~dp0certs\ca.cer
)else if %TREE%==4 (
certutil -store ROOT
)else if %TREE%==5 (
exit /b
)else (
CLS
echo 不適切なキーが入力されました
GOTO :ROOP
)
GOTO :ROOP
 



証明書の再作成&再登録の際、一度ブラウザから登録済みの証明書を削除してから、もう一度登録し直す必要があるみたいです!証明書を削除した後、ブラウザの再起動が必要と思われます(未確認)(2018年10月17日追記)



bcprov-jdk15on-*.jar[bcprov.jarにリネーム]
bcpkix-jdk15on-*.jar[bcpkix.jarにリネーム]
https://www.bouncycastle.org/latest_releases.html



【ニコニコ】自動ローカル保存プロクシ NicoCache21
https://egg.5ch.net/test/read.cgi/software/1495681255/ より
【ニコニコ】自動ローカル保存プロクシ NicoCache22
https://egg.5ch.net/test/read.cgi/software/1517020277/97 よりセキュリティ向上のため一部改変

961 名無しさん@お腹いっぱい。 (ワッチョイ 4d91-5/5B)[sage] 投稿日:2018/02/08(木) 10:16:25.38 ID:0JRnCt490
ニコ百って以前から埋め込み動画にキャッシュアイコンって出なかったでしたっけ?前は出ていたような気がするのに

962 名無しさん@お腹いっぱい。 (ワッチョイ c663-bvbi)[sage] 投稿日:2018/02/08(木) 17:21:02.80 ID:Lnvd/sK/0
>>961
埋め込みコードがHTTPS化されたのでTLS MitM機能を有効化しないと書き換えができません.
そろそろインストール手順にTLS MitM機能の有効化手順を入れるべきですかね.

説明は documents/Readme_CA.txt と defaults/30_NicoCache_nl_TLS.properties にありますが
手順を以下にまとめておきます.

1. 依存ライブラリをダウンロード
https://www.bouncycastle.org/latest_releases.html
から bcprov-jdk15on-159.jar と bcpkix-jdk15on-159.jar をダウンロードして
それぞれ lib/bcprov.jar と lib/bcpkix.jar に配置する.

2. genCerts.batを実行
これによりcertsフォルダ内に鍵と証明書(ca.cer, ca.jks, site.cer, site.jks)が生成される.
certsフォルダ内のファイルは公開しないように注意.

3. config.properties へ enableMitm=true を設定

4. ブラウザに生成された認証局の証明書をインポートする
a) Chrome(Windows10)の場合
a-1. 設定 > プライバシーとセキュリティ > 証明書の管理
a-2. (ここからOS依存) 信頼されたルート証明機関 > インポート
a-3. certs/ca.cerを選択 ※フィンガープリントの確認ダイアログが出るが2.で生成したものなので確認不要
a-4. 「NicoCache_nl CA」を選択して,「証明書の目的」欄の「表示」から証明書ウィンドウを開き,
「詳細」タブの「プロパティの編集」を押して出てきた「証明書のプロパティ」ウィンドウで
証明書の目的を「次の目的だけを有効にする」にして「サーバー認証」以外のチェックを全て外す.
この設定を行うと「証明書の目的」欄の表示が「すべて」から「サーバー認証」に変わります.
a-5. Chromeを再起動

b) Firefoxの場合
設定 > プライバシーとセキュリティ > 証明書 > 証明書を表示 > 認証局証明書 > インポート
certs/ca.cerを選択
「この認証局によるウェブサイトの識別を信頼する」にチェック

又は

about:configを開き「security.enterprise_roots.enabled」をtrueにすることでWindows証明書ストアのルート証明書を認識させることができます

注: pacファイルを利用している場合はpacファイルが古くないか確認
970 名前:名無しさん@お腹いっぱい。 (ワッチョイW e25e-nhNs)[sage] 投稿日:2018/02/10(土) 23:39:46.89 ID:fVUqliuK0
https設定したけどiphoneで生放送アプリが動作しないからこれ証明書はiphoneにも必要なのか・・・

971 名前:名無しさん@お腹いっぱい。 (ワッチョイ c663-bvbi)[sage] 投稿日:2018/02/11(日) 00:14:17.47 ID:8VbCOtah0
>>970
>>962

をやってiPhoneにNicoCacheプロキシ設定をしてあるなら証明書インストールが必要になりますわね
iPhoneは持ってないので確認できないんですがウェブ上の情報を見る限り
1. ca.cerをメールで添付して送る (注:ca.jksの方は機密情報が入っているので送らない)
2. ca.cerを開いてプロファイルのインストールを行う
3. 設定 > 一般 > 情報 > 証明書信頼設定 から ルート証明書を全面的に信頼する
らしいです


確認事項

1. lib フォルダにbcprov.jar と bcpkix.jarが存在すること

2. certs フォルダにca.cer, ca.jks, site.cer, site.jksが存在すること

3. config.properties の 設定値 enableMitm が true の値に変更済み(enableMitm=true)であること

4. ブラウザーやOSの証明書の「認証機関」に「NicoCache_nl CA」がインストール済み(certs/ca.cer)であること

※注:FirefoxはOSからは独立した、独自の証明書エディタを搭載している一方、Chromeに代表される
Chromium系ブラウザはOSのSystem証明書エディタを用いる。
Firefoxではabout:configを開き「security.enterprise_roots.enabled」をtrueにすることでWindows証明書ストアのルート証明書を認識させることができます

5. proxy.pac の中身が最新であること

https対応proxy.pacのソースコードを一応載せておく
-...
// nicovideo,smile,nimg,dmcへのアクセスを全てNicoCache_nl経由にする proxy.pac
 
function FindProxyForURL(url, host) {
    if ((shExpMatch(host, "*.nicovideo.jp")
      || shExpMatch(host, "*.smilevideo.jp")
      || shExpMatch(host, "*.nimg.jp")
      || shExpMatch(host, "*.dmc.nico")
        ) && (url.indexOf("http:") == 0 || url.indexOf("https:") == 0)) {
        return "PROXY 127.0.0.1:8080";
    }
    return "DIRECT";
}
 

6. config.properties変更後及びブラウザに証明書インポート後にNicoCacheとブラウザをそれぞれ再起動すること

再起動するまでは効果が反映されないことが多い

これらを全て確認しても動かない場合はスレッドで質問すること!
名前:
コメント:



おまけ

Linuxでの証明書のインストール方法


+...

How to import CA root certificates on Linux and Windows


In most cases running an own CA (certification authority) is not advisable. But there are exceptions: If you want to secure internal services of your company, using your own CA might be necessary. During my employment at ADITO Software GmbH I created a tool for X.509 certificate management. The root certificate of my tool had to be imported into every PC of the company. Unfortunately there are some pitfalls which I did not expect, but after some research I figured out how to import the new CA to Linux- and Windows PCs and to every major webbrowser.

In the following text root.cert.pem is the root certificate file.

Linux (Debian / Ubuntu)

System

Installing the root certificate on a Linux PC is straight forward:.

sudo mkdir /usr/local/share/ca-certificates/extra
sudo cp root.cert.pem /usr/local/share/ca-certificates/extra/root.cert.crt
sudo update-ca-certificates

After these steps the new CA is known by system utilities like curl and get. Unfortunately, this does not affect most web browsers like Mozilla Firefox or Google Chrome.

Browser (Firefox, Chromium, …)

Web browsers like Firefox, Chromium, Google Chrome, Vivaldi and even e-mail clients like Mozilla Thunderbird don’t make use of the OS trust store, but use their own certificate trust store. These trust stores are files in the user directory, named “cert8.db” and “cert9.db” (for newer versions). You can modify the trust store files by using the “certutil” tool. To install certutil, execute the following apt command:

sudo apt install libnss3-tools

This little helper script finds trust store databases and imports the new root certificate into them.

------------script------------
#!/bin/bash

### Script installs root.cert.pem to certificate trust store of applications using NSS
### (e.g. Firefox, Thunderbird, Chromium)
### Mozilla uses cert8, Chromium and Chrome use cert9

###
### Requirement: apt install libnss3-tools
###

 
###
### CA file to install (CUSTOMIZE!)
###

certfile="root.cert.pem"
certname="My Root CA"
 
 
###
### For cert8 (legacy - DBM)
###

for certDB in $(find ~/ -name "cert8.db")
do
    certdir=$(dirname ${certDB});
    certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d dbm:${certdir}
done
 
 
###
### For cert9 (SQL)
###

for certDB in $(find ~/ -name "cert9.db")
do
    certdir=$(dirname ${certDB});
    certutil -A -n "${certname}" -t "TCu,Cu,Tu" -i ${certfile} -d sql:${certdir}
done
 
 
------------script end------------

After execution of this script your root CA should be known to Firefox, Chrome, Chromium, Vivaldy and other browsers.


Windows


System


New root certificates can easily be imported into Windows via Active Directory. However, if you do not have Active Directory enabled on your Windows machines, this is how you manually import your certificate:

Change your certificate’s file name extension from .pem to .crt and open the file. Then select “Install certificate” => “Local machine” and browse the certificate store. Your certificate should be installed into “Trusted Root Certification Authorities”.

On Windows most webbrowsers and other applications use the OS trust store, so Google Chrome and Vivaldi should accept your certificates instantly. However, Firefox needs special treatment ..

Mozilla Firefox


Like on Linux platforms, Firefox uses its own certificate trust store. You can manually import your root certificate via the Firefox settings, or force Firefox to use the Windows trust store:

Create a new Javascript file firefox-windows-truststore.js at C:\Program Files (x86)\Mozilla Firefox\defaults\pref with the following content:

/* Enable experimental Windows trust store support */
pref("security.enterprise_roots.enabled", true);

Firefox should know your CA after a browser restart.