policy」についての対応の続き。<iframe>のsandboxについておさらいamp-iframeは下記ドキュメントによれば、allow-same-originを指定するときはamp-iframeのsrcは別オリジンでなければならないとこのことである。ampproject/amphtml理由としてはamp-iframeでホストされるページが、異なるオリジンで動作することを前提にコードを書かせるため。AMPの場合、CDNエッジによってキャッシュされ、異なるオリジンとなる可能性があるから。amp-iframeの場合、既定でiframeでsandboxを空文字列指定した時と同じ強い制約がかかる。sandbox属性にトークンを指定することで、必要な権限をつけていく。iframeはallow-same-originを指定した場合、同一オリジンおよび異なるオリジンであっても動作には支障ない。amp-iframeの場合は上述の理由によって異なるオリジンが強制されるため、対応が必要となる。具体的にはamp-iframeのみ別オリジンとなるようにsrc属性を書き換えることが必要になってくる。iframe・amp-iframeに関係なく別オリジンとするかとか。allow-same-originは強力な権限なのでそもそもつけるべきではない。ホストするページと交信することもないのであればallow-scriptsにとどめておくことが望ましい。スクリプトの実行の必要のないページはallow-scriptsすら指定する必要はないが。amp-iframeでホストされるページが、同一オリジンでありかつwindow.localStorageを使用するものである。localStorageでホストページとデータのやり取りをするわけではなく、ホストされるページはもともと独立して動作するものである。直接ページにアクセスすれば動作に支障ないものの、amp-iframeでホストしようとすると問題が発生するのである。amp-iframeにはallow-scriptを設定していて、スクリプトの実行はできるのだが、windowへのアクセスは制限がかかってしまう。対応するにはamp-iframeのsandbox属性にallow-same-originを追加する必要がある。iframeであればこれで問題は解消するが、amp-iframeでは同一オリジンでallow-same-originは指定できないため、なにも表示されなくなってしまう。これを解消するにはホストされるコンテンツを別オリジンでサーブする必要がある。オリジンが異なればよいので、例えば「www.xxx.com」でサーブしている場合、DNSに同じIPで「alter.xxx.com」を定義し、WWWサーバ側でホスト名を追加すれば比較的簡単にできるかなと考えた。amp-iframeのsrcを見て、同一オリジンであれば「alter.xxx.com」に書き換えるのである。これで解決するはずだ。Nameとして証明書に追加しなくてはならない。以下のコマンドを実行した。Missmatch」となってしまうのである。Nameに「alter.sfpgmr.net」が追加されていないようである。days」ということらしく、この制限に引っかかったのかな?と思っている。来週また証明書を更新してみることにする。一度証明書を保存しているフォルダを消して再作成したら、登録できていた。