{"id":114,"date":"2014-03-05T10:51:37","date_gmt":"2014-03-05T10:51:37","guid":{"rendered":"http:\/\/esferas.org\/msqlu\/2014\/03\/05\/cliente-firma-de-la-aeat-y-debian\/"},"modified":"2014-03-05T10:51:37","modified_gmt":"2014-03-05T10:51:37","slug":"cliente-firma-de-la-aeat-y-debian","status":"publish","type":"post","link":"https:\/\/esferas.org\/msqlu\/2014\/03\/05\/cliente-firma-de-la-aeat-y-debian\/","title":{"rendered":"Cliente @firma de la AEAT y Debian &#8230;"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"debian-logo\" src=\"https:\/\/esferas.org\/mt\/msqlu\/logos\/openlogo-100.png\" class=\"mt-image-left\" style=\"float: left; margin: 0 20px 20px 0;\" height=\"123\" width=\"100\" \/>&#8230; un poco a lo bestia pero se puede.<\/p>\n<p>Esta entrada pretende ser mi punto de referencia para cuando precise volver a instalar todo el montaje y ser capaz de interactuar con la sede electr\u00f3nica de la Agencia Tributaria.<\/p>\n<\/p>\n<p><!--more--><\/p>\n<p>Entonces, \u00bf se puede usar el cliente @firma con Debian ? No. No se puede. Al menos con la versi\u00f3n Wheezy de Debian y con las \u00faltimas versiones de Iceweasel empleando el repositorio <em>wheezy-backports<\/em>. Con la versi\u00f3n estable, la 17, tampoco.<\/p>\n<p>El problema fundamental es de situaci\u00f3n de archivos, especialmente complementos, y nombres de los mismos. Sospecho que hay algo m\u00e1s pero he sido incapaz de averig\u00fcar el qu\u00e9. Normalmente llego a esta conclusi\u00f3n cuando me veo examinando las llamadas al sistema generadas con un trazado de la ejecuci\u00f3n del navegador (usando <em>strace<\/em>); es entonces cuando me digo que es mejor dejarlo y atacar el problema por otra parte.<\/p>\n<p>A modo de resumen \u00e9sto es lo que he hecho para ser capaz de firmar en la AEAT desde Debian:<\/p>\n<ul>\n<li>Instalar Firefox<\/li>\n<li>Instalar el entorno Java de Oracle\/Sun<\/li>\n<li>Instalar certificados digitales y realizar otros ajustes en la configuraci\u00f3n.<\/li>\n<\/ul>\n<p>No pretendo sustituir el navegador que se incluye de serie en el sistema. No me parece una buena idea porque funciona estupendamente con sitios especiales (como los bancos) y s\u00f3lo presenta problemas cuando se trata de emplear <em>applets<\/em> Java para firmar env\u00edos. Adem\u00e1s, tampoco estoy seguro de si seguir\u00e1 funcionando al cambiar la versi\u00f3n del navegador y, lo peor, me tocar\u00e1 a m\u00ed crear y mantener los paquetes de Firefox que precisen actualizaciones de seguridad. Casi que no, que bastante tengo.<\/p>\n<p>Mi enfoque ha sido crear paquetes Debian espec\u00edficos que instalen tanto el navegador como el java de Oracle bajo la jerarqu\u00eda <em>\/opt<\/em> y a\u00f1adir algunos <em>scripts<\/em> de arranque y otras retoques para que puedan emplearse como programas independientes. He tenido m\u00e1s problemas con Java de lo que pensaba porque en Debian es un farragoso cortocircuitar el mecanismo de selecci\u00f3n del entorno pero al final ha quedado bien.<\/p>\n<p>Con Firefox he optado por otra opci\u00f3n, mitad aislamiento y mitad integraci\u00f3n. Consiste en que el programa que lanza el navegador se asegura de que exista un perfil de ejecuci\u00f3n llamado AEAT antes de lanzar el programa real y as\u00ed es posible a\u00f1adir configuraciones concretas (como la p\u00e1gina de inicio o algunos ajustes en el tratamiento de <em>applets<\/em>) sin afectar a los perfiles que se usan normalmente con Iceweasel. Usa alg\u00fan par\u00e1metro m\u00e1s para que no se reutilice ninguna sesi\u00f3n abierta y otro par de detalles que expondr\u00e9 m\u00e1s abajo.<\/p>\n<p>Ya de paso el paquete que instala el navegador (empresa-firefox) lleva consigo los certificados ra\u00edz que se necesitan instalar como fiables en el navegador. Es una instalaci\u00f3n global usando el paquete <em>ca-certificates<\/em> pero es la forma m\u00e1s directa de hacerlo.<\/p>\n<h4>Fragmentos<\/h4>\n<p>El archivo de preferencias que sit\u00fao en el perfil AEAT tiene los siguientes valores:<\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\"><span style=\"color: #888888;\">\/\/ Disable default browser checking.<\/span>\npref(<span style=\"background-color: #fff0f0;\">\"browser.shell.checkDefaultBrowser\"<\/span>, <span style=\"color: #008800; font-weight: bold;\">false<\/span>);\n\n<span style=\"color: #888888;\">\/\/ Setting starupt home page <\/span>\npref(<span style=\"background-color: #fff0f0;\">\"browser.startup.homepage\"<\/span>, <span style=\"background-color: #fff0f0;\">\"http:\/\/www.aeat.es\"<\/span>);\npref(<span style=\"background-color: #fff0f0;\">\"browser.startup.page\"<\/span>,    <span style=\"background-color: #fff0f0;\">\"1\"<\/span>);\n\n<span style=\"color: #888888;\">\/\/ Enable signed applets for @FIRMA client<\/span>\npref((<span style=\"background-color: #fff0f0;\">\"signed.applets.codebase_principal_support\"<\/span>, <span style=\"color: #008800; font-weight: bold;\">true<\/span>);\n<\/pre>\n<\/div>\n<p>y el script que lanza Firefox con su entorno es:<span style=\"color: #888888;\"><\/span><\/p>\n<p><span style=\"color: #888888;\"><!-- HTML generated using hilite.me --><\/span><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\"><span style=\"color: #888888;\">#!\/bin\/bash<\/span>\n\n<span style=\"color: #888888;\">#<\/span>\n<span style=\"color: #888888;\">#   Invoca al programa Firefox seg\u00fan el nombre con el que se llame:<\/span>\n<span style=\"color: #888888;\">#   - con un perfil espec\u00edfico para acceder al servicio de la AEAT <\/span>\n<span style=\"color: #888888;\">#   - con el perfile predeterminado (ojo, que puede colisionar con la<\/span>\n<span style=\"color: #888888;\">#   instalaci\u00f3n actual de iceweasel)<\/span>\n<span style=\"color: #888888;\">#<\/span>\n\n<span style=\"color: #888888;\">#   Variables<\/span>\n<span style=\"color: #996633;\">VERSION<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"0.3\"<\/span>\n<span style=\"color: #996633;\">CONFIG_DIR<\/span><span style=\"color: #333333;\">=<\/span>\/etc\/empresa\n<span style=\"color: #996633;\">CONFIG<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"${CONFIG_DIR}\/firefox.conf\"<\/span>\n<span style=\"color: #996633;\">PROFILE_NAME<\/span><span style=\"color: #333333;\">=<\/span>AEAT\n<span style=\"color: #996633;\">PROFILE_PATH<\/span><span style=\"color: #333333;\">=<\/span><span style=\"color: #008800; font-weight: bold;\">$(<\/span>ls -1d <span style=\"color: #008800; font-weight: bold;\">${<\/span><span style=\"color: #996633;\">HOME<\/span><span style=\"color: #008800; font-weight: bold;\">}<\/span>\/.mozilla\/firefox\/*.<span style=\"color: #008800; font-weight: bold;\">${<\/span><span style=\"color: #996633;\">PROFILE_NAME<\/span><span style=\"color: #008800; font-weight: bold;\">})<\/span>\n<span style=\"color: #996633;\">DEFAULT_URL<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"http:\/\/www.aeat.es\"<\/span>\n<span style=\"color: #996633;\">ROOT_DIR<\/span><span style=\"color: #333333;\">=<\/span>\/opt\/firefox\n<span style=\"color: #996633;\">FIREFOX_ARGS<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"-no-remote -silent\"<\/span>\n<span style=\"color: #996633;\">GOTOAEAT<\/span><span style=\"color: #333333;\">=<\/span>yes\n\n<span style=\"color: #888888;\">#   Seg\u00fan el nombre<\/span>\n<span style=\"color: #008800; font-weight: bold;\">case<\/span> <span style=\"color: #008800; font-weight: bold;\">$(<\/span>basename <span style=\"color: #996633;\">$0<\/span><span style=\"color: #008800; font-weight: bold;\">)<\/span> in\nfirefox-aeat<span style=\"color: #333333;\">)<\/span>\n    <span style=\"color: #996633;\">GOTOAEAT<\/span><span style=\"color: #333333;\">=<\/span>yes\n    ;;\nfirefox-opt<span style=\"color: #333333;\">)<\/span>\n    <span style=\"color: #996633;\">GOTOAEAT<\/span><span style=\"color: #333333;\">=<\/span>no\n    ;;\n<span style=\"color: #008800; font-weight: bold;\">esac<\/span> \n\n<span style=\"color: #888888;\">#   Par\u00e1metros <\/span>\n<span style=\"color: #996633;\">URL<\/span><span style=\"color: #333333;\">=<\/span><span style=\"color: #996633;\">$*<\/span>\n\n<span style=\"color: #888888;\">#   Cargamos archivo de configuraci\u00f3n<\/span>\n<span style=\"color: #008800; font-weight: bold;\">if<\/span> <span style=\"color: #333333;\">[<\/span> -r <span style=\"color: #996633;\">$CONFIG<\/span> <span style=\"color: #333333;\">]<\/span>; <span style=\"color: #008800; font-weight: bold;\">then<\/span> \n    . <span style=\"color: #996633;\">$CONFIG<\/span>\n<span style=\"color: #008800; font-weight: bold;\">fi<\/span> \n\n<span style=\"color: #888888;\">#   Situamos el navegador<\/span>\n<span style=\"color: #996633;\">FIREFOX<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"${ROOT_DIR}\/$(dpkg --print-architecture)\/firefox\"<\/span>\n<span style=\"color: #008800; font-weight: bold;\">if<\/span> <span style=\"color: #333333;\">[<\/span> ! -x <span style=\"color: #996633;\">$FIREFOX<\/span> <span style=\"color: #333333;\">]<\/span>; <span style=\"color: #008800; font-weight: bold;\">then<\/span>\n<span style=\"color: #008800; font-weight: bold;\">    <\/span><span style=\"color: #996633;\">FIREFOX<\/span><span style=\"color: #333333;\">=<\/span>\/usr\/bin\/firefox\n<span style=\"color: #008800; font-weight: bold;\">fi<\/span>\n\n<span style=\"color: #888888;\">#   Discriminados seg\u00fan vayamos o no a la AEAT<\/span>\n<span style=\"color: #008800; font-weight: bold;\">case<\/span> <span style=\"color: #996633;\">$GOTOAEAT<\/span> in\nyes<span style=\"color: #333333;\">)<\/span>\n    <span style=\"color: #888888;\">#   Verificamos si existe el perfil<\/span>\n    <span style=\"color: #008800; font-weight: bold;\">if<\/span> <span style=\"color: #333333;\">[<\/span> ! -e <span style=\"color: #996633;\">$PROFILE_PATH<\/span> <span style=\"color: #333333;\">]<\/span>;<span style=\"color: #008800; font-weight: bold;\">then<\/span> \n        <span style=\"color: #888888;\"># Procedemos a crear el perfil<\/span>\n        <span style=\"color: #008800; font-weight: bold;\">${<\/span><span style=\"color: #996633;\">FIREFOX<\/span><span style=\"color: #008800; font-weight: bold;\">}<\/span> -CreateProfile <span style=\"color: #008800; font-weight: bold;\">${<\/span><span style=\"color: #996633;\">PROFILE_NAME<\/span><span style=\"color: #008800; font-weight: bold;\">}<\/span> -no-remote \n\n        <span style=\"color: #008800; font-weight: bold;\">if<\/span> <span style=\"color: #333333;\">[<\/span> <span style=\"color: #996633;\">$?<\/span> -ne 0 <span style=\"color: #333333;\">]<\/span>; <span style=\"color: #008800; font-weight: bold;\">then<\/span>\n<span style=\"color: #008800; font-weight: bold;\">            <\/span><span style=\"color: #007020;\">echo<\/span> <span style=\"background-color: #fff0f0;\">\"No puedo crear el perfil ${PROFILE_NAME}\"<\/span> &gt;&amp;2\n            <span style=\"color: #007020;\">exit <\/span>1\n        <span style=\"color: #008800; font-weight: bold;\">fi<\/span>\n<span style=\"color: #008800; font-weight: bold;\">    fi <\/span>\n<span style=\"color: #008800; font-weight: bold;\">    <\/span><span style=\"color: #996633;\">FIREFOX_ARGS<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"-P ${PROFILE_NAME} ${FIREFOX_ARGS}\"<\/span>\n\n    <span style=\"color: #888888;\">#   Comprobamos si las preferencias de usuario existen<\/span>\n    <span style=\"color: #008800; font-weight: bold;\">if<\/span> <span style=\"color: #333333;\">[<\/span> ! -e <span style=\"background-color: #fff0f0;\">\"${PROFILE_PATH}\/user.js\"<\/span> <span style=\"color: #333333;\">]<\/span>; <span style=\"color: #008800; font-weight: bold;\">then <\/span>\n<span style=\"color: #008800; font-weight: bold;\">        <\/span>cp <span style=\"background-color: #fff0f0;\">\"${CONFIG_DIR}\/firefox-user.js\"<\/span> <span style=\"background-color: #fff0f0;\">\"${PROFILE_PATH}\/user.js\"<\/span>\n    <span style=\"color: #008800; font-weight: bold;\">fi<\/span>\n\n    <span style=\"color: #888888;\">#   Direcci\u00f3n que abrir <\/span>\n    <span style=\"color: #008800; font-weight: bold;\">if<\/span> <span style=\"color: #333333;\">[<\/span> ! -z <span style=\"background-color: #fff0f0;\">\"$URL\"<\/span> <span style=\"color: #333333;\">]<\/span>; <span style=\"color: #008800; font-weight: bold;\">then<\/span>\n<span style=\"color: #008800; font-weight: bold;\">        <\/span><span style=\"color: #996633;\">OPEN_URL<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"-url ${URL}\"<\/span>\n    <span style=\"color: #008800; font-weight: bold;\">else<\/span>\n<span style=\"color: #008800; font-weight: bold;\">        <\/span><span style=\"color: #996633;\">OPEN_URL<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"-url ${DEFAULT_URL}\"<\/span>\n    <span style=\"color: #008800; font-weight: bold;\">fi<\/span>\n    ;;\nno<span style=\"color: #333333;\">)<\/span>\n    <span style=\"color: #333333;\">[<\/span> ! -z <span style=\"background-color: #fff0f0;\">\"$URL\"<\/span> <span style=\"color: #333333;\">]<\/span> <span style=\"color: #333333;\">&amp;&amp;<\/span> <span style=\"color: #996633;\">OPEN_URL<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"-url ${URL}\"<\/span> \n    ;;\n<span style=\"color: #008800; font-weight: bold;\">esac<\/span>\n\n<span style=\"color: #888888;\">#   Lanzamos el navegador con el perfil indicado<\/span>\n<span style=\"color: #007020;\">exec<\/span> <span style=\"color: #008800; font-weight: bold;\">${<\/span><span style=\"color: #996633;\">FIREFOX<\/span><span style=\"color: #008800; font-weight: bold;\">}<\/span> <span style=\"color: #008800; font-weight: bold;\">${<\/span><span style=\"color: #996633;\">FIREFOX_ARGS<\/span><span style=\"color: #008800; font-weight: bold;\">}<\/span> <span style=\"color: #008800; font-weight: bold;\">${<\/span><span style=\"color: #996633;\">OPEN_URL<\/span><span style=\"color: #008800; font-weight: bold;\">}<\/span>\n<\/pre>\n<\/div>\n<p><span style=\"color: #888888;\"><\/span>En este caso las referencias a la arquitectura del sistema (<em>dpkg &#8211;print-architecture<\/em>) se deben a que construyo dos paquetes distintos, uno para <em>amd64<\/em> y otro para <em>i386<\/em>, y me obligo a situar cada uno bajo los directorios <em>\/opt\/firefox\/{amd64,i386}<\/em>. Es s\u00f3lo una forma de organizarse por si me hace falta tener las dos opciones con algunas p\u00e1ginas web.<\/p>\n<h4>Comentarios sobre los paquetes<\/h4>\n<p>En ambos casos la construcci\u00f3n de los paquetes parte del archivo empaquetado correspondiente. Uno descargado del <a href=\"ftp:\/\/ftp.mozilla.org\/pub\/firefox\/releases\/latest\/\">repositorio de Mozilla <\/a>y otro del repositorio de <a href=\"http:\/\/www.oracle.com\/technetwork\/java\/javase\/downloads\/index.html\">Oracle<\/a>.<\/p>\n<p>Para \u00e9ste \u00faltimo recomiendo emplear el programa <em>make-jpkg<\/em> porque simplifica mucho la construcci\u00f3n del paquete y su instalaci\u00f3n. No ha sido mi caso porque prefiero controlar m\u00e1s todo el proceso y aprender con ello pero sigo pensando que es muy buena opci\u00f3n. S\u00f3lo hay un detalle importante que <em>make-jpkg<\/em> obvia y es a\u00f1adir el complemento Java para el navegador Firefox; como es l\u00f3gico s\u00f3lo tiene soporte para Iceweasel y Chromium. Se puede a\u00f1adir con un script de configuraci\u00f3n del paquete (<em>debian\/postinst<\/em>) de la siguiente forma:<\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div style=\"background: #ffffff; overflow: auto; width: auto; border: solid gray; border-width: .1em .1em .1em .8em; padding: .2em .6em;\">\n<pre style=\"margin: 0; line-height: 125%;\"><span style=\"color: #888888;\">#!\/bin\/sh<\/span>\n<span style=\"color: #888888;\"># postinst script for empresa-sun-java<\/span>\n<span style=\"color: #888888;\">#<\/span>\n<span style=\"color: #888888;\"># see: dh_installdeb(1)<\/span>\n\n<span style=\"color: #007020;\">set<\/span> -e\n\n<span style=\"color: #888888;\">#   Variables <\/span>\n<span style=\"color: #007020;\">export <\/span><span style=\"color: #996633;\">JAVA_HOME<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"\/opt\/java-oracle\/$(dpkg --print-architecture)\/$(cat \/usr\/share\/empresa\/java\/version)\/\"<\/span>\n\n<span style=\"color: #888888;\">#   Funciones de configuraci\u00f3n (tomadas de make-jpkg)<\/span>\ninstall_alternatives<span style=\"color: #333333;\">()<\/span> <span style=\"color: #333333;\">{<\/span>\n    <span style=\"color: #996633;\">program_base<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"$1\"<\/span>\n    <span style=\"color: #007020;\">shift<\/span>\n<span style=\"color: #007020;\">    <\/span><span style=\"color: #008800; font-weight: bold;\">for <\/span>program in <span style=\"color: #996633;\">$*<\/span>; <span style=\"color: #008800; font-weight: bold;\">do<\/span>\n<span style=\"color: #008800; font-weight: bold;\">        <\/span>update-alternatives --install <span style=\"background-color: #fff0f0;\">\"\/usr\/bin\/${program}\"<\/span> <span style=\"background-color: #fff0f0;\">\"${program}\"<\/span> <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            <span style=\"background-color: #fff0f0;\">\"${program_base}\/${program}\"<\/span> 316 <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            --slave <span style=\"background-color: #fff0f0;\">\"\/usr\/share\/man\/man1\/${program}\"<\/span> <span style=\"background-color: #fff0f0;\">\"${program}.1.gz\"<\/span> <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            <span style=\"background-color: #fff0f0;\">\"${program_base}\/..\/man\/man1\/${program}.1\"<\/span> \n    <span style=\"color: #008800; font-weight: bold;\">done<\/span>\n<span style=\"color: #333333;\">}<\/span>\n\ninstall_no_man_alternatives<span style=\"color: #333333;\">()<\/span> <span style=\"color: #333333;\">{<\/span>\n    <span style=\"color: #996633;\">program_base<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"$1\"<\/span>\n    <span style=\"color: #007020;\">shift<\/span>\n<span style=\"color: #007020;\">    <\/span><span style=\"color: #008800; font-weight: bold;\">for <\/span>program in <span style=\"color: #996633;\">$*<\/span>; <span style=\"color: #008800; font-weight: bold;\">do<\/span>\n<span style=\"color: #008800; font-weight: bold;\">        <\/span>update-alternatives --install <span style=\"background-color: #fff0f0;\">\"\/usr\/bin\/${program}\"<\/span> <span style=\"background-color: #fff0f0;\">\"${program}\"<\/span> <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            <span style=\"background-color: #fff0f0;\">\"${program_base}\/${program}\"<\/span> 316 \n    <span style=\"color: #008800; font-weight: bold;\">done<\/span>\n<span style=\"color: #333333;\">}<\/span>\n\ninstall_browser_plugin<span style=\"color: #333333;\">()<\/span> <span style=\"color: #333333;\">{<\/span>\n    <span style=\"color: #007020;\">local <\/span><span style=\"color: #996633;\">link_path<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"$1\"<\/span>\n    <span style=\"color: #007020;\">local <\/span><span style=\"color: #996633;\">link_name<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"$2\"<\/span>\n    <span style=\"color: #007020;\">local <\/span><span style=\"color: #996633;\">plugin_name<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"$3\"<\/span>\n    <span style=\"color: #007020;\">local <\/span><span style=\"color: #996633;\">plugin<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"$4\"<\/span>\n    <span style=\"color: #333333;\">[<\/span> -d <span style=\"background-color: #fff0f0;\">\"${link_path}\"<\/span> <span style=\"color: #333333;\">]<\/span> <span style=\"color: #333333;\">||<\/span> install -d -m 755 <span style=\"background-color: #fff0f0;\">\"${link_path}\"<\/span>\n    update-alternatives --install <span style=\"background-color: #fff0f0;\">\"${link_path}\/${link_name}\"<\/span> <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n        <span style=\"background-color: #fff0f0;\">\"${plugin_name}\"<\/span> <span style=\"background-color: #fff0f0;\">\"${plugin}\"<\/span> 316\n<span style=\"color: #333333;\">}<\/span>\n\nset_java_environment<span style=\"color: #333333;\">()<\/span> <span style=\"color: #333333;\">{<\/span>\n    <span style=\"color: #008800; font-weight: bold;\">if<\/span> <span style=\"color: #333333;\">[<\/span> -e \/opt\/java-oracle\/latest <span style=\"color: #333333;\">]<\/span>; <span style=\"color: #008800; font-weight: bold;\">then <\/span>\n<span style=\"color: #008800; font-weight: bold;\">        <\/span>rm -f \/opt\/java-oracle\/latest \n    <span style=\"color: #008800; font-weight: bold;\">fi <\/span>\n<span style=\"color: #008800; font-weight: bold;\">    <\/span>ln -s <span style=\"background-color: #fff0f0;\">\"${JAVA_HOME}\"<\/span> \/opt\/java-oracle\/latest\n    grep -q -s JAVA_HOME \/etc\/environment \n    <span style=\"color: #008800; font-weight: bold;\">if<\/span> <span style=\"color: #333333;\">[<\/span> <span style=\"color: #996633;\">$?<\/span> -ne 0 <span style=\"color: #333333;\">]<\/span>; <span style=\"color: #008800; font-weight: bold;\">then <\/span>\n<span style=\"color: #008800; font-weight: bold;\">        <\/span><span style=\"color: #007020;\">echo<\/span> <span style=\"background-color: #fff0f0;\">'JAVA_HOME=\/opt\/java-oracle\/latest'<\/span> &gt;&gt; \/etc\/environment\n    <span style=\"color: #008800; font-weight: bold;\">fi<\/span>\n<span style=\"color: #333333;\">}<\/span>\n\n<span style=\"color: #008800; font-weight: bold;\">case<\/span> <span style=\"background-color: #fff0f0;\">\"$1\"<\/span> in\n    configure<span style=\"color: #333333;\">)<\/span>\n        <span style=\"color: #888888;\">#   Instalamos ejecutables con p\u00e1gina de manual<\/span>\n        install_alternatives <span style=\"background-color: #fff0f0;\">\"${JAVA_HOME}\/bin\"<\/span> java javaws keytool orbd <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            pack200 rmiregistry servertool tnameserv unpack200 <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            policytool javaws\n\n        <span style=\"color: #888888;\">#   Instalamos ejecutables sin p\u00e1gina de manual<\/span>\n        install_no_man_alternatives <span style=\"background-color: #fff0f0;\">\"${JAVA_HOME}\/bin\"<\/span> ControlPanel\n        install_no_man_alternatives <span style=\"background-color: #fff0f0;\">\"${JAVA_HOME}\/lib\"<\/span> jexec\n\n        <span style=\"color: #888888;\">#   Instalamos el complemento para los navegadores<\/span>\n        <span style=\"color: #996633;\">plugin_dir<\/span><span style=\"color: #333333;\">=<\/span><span style=\"background-color: #fff0f0;\">\"${JAVA_HOME}\/lib\/$(dpkg --print-architecture)\"<\/span>\n        install_browser_plugin <span style=\"background-color: #fff0f0;\">\"\/usr\/lib\/iceweasel\/plugins\"<\/span> <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            <span style=\"background-color: #fff0f0;\">\"libjavaplugin.so\"<\/span> <span style=\"background-color: #fff0f0;\">\"iceweasel-javaplugin.so\"<\/span> <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            <span style=\"background-color: #fff0f0;\">\"${plugin_dir}\/libnpjp2.so\"<\/span> \n        install_browser_plugin <span style=\"background-color: #fff0f0;\">\"\/usr\/lib\/chromium\/plugins\"<\/span> <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            <span style=\"background-color: #fff0f0;\">\"libjavaplugin.so\"<\/span> <span style=\"background-color: #fff0f0;\">\"chromium-javaplugin.so\"<\/span> <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            <span style=\"background-color: #fff0f0;\">\"${plugin_dir}\/libnpjp2.so\"<\/span> \n        install_browser_plugin <span style=\"background-color: #fff0f0;\">\"\/usr\/lib\/mozilla\/plugins\"<\/span> <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            <span style=\"background-color: #fff0f0;\">\"libjavaplugin.so\"<\/span> <span style=\"background-color: #fff0f0;\">\"mozilla-javaplugin.so\"<\/span> <span style=\"color: #666666; font-weight: bold; background-color: #fff0f0;\">\\<\/span>\n            <span style=\"background-color: #fff0f0;\">\"${plugin_dir}\/libnpjp2.so\"<\/span> \n\n        <span style=\"color: #888888;\"># Preparamos entorno para java <\/span>\n        set_java_environment\n    ;;\n\n    abort-upgrade|abort-remove|abort-deconfigure<span style=\"color: #333333;\">)<\/span>\n    ;;\n\n    *<span style=\"color: #333333;\">)<\/span>\n        <span style=\"color: #007020;\">echo<\/span> <span style=\"background-color: #fff0f0;\">\"postinst called with unknown argument \\`$1'\"<\/span> &gt;&amp;2\n        <span style=\"color: #007020;\">exit <\/span>1\n    ;;\n<span style=\"color: #008800; font-weight: bold;\">esac<\/span>\n\n<span style=\"color: #888888;\"># dh_installdeb will replace this with shell code automatically<\/span>\n<span style=\"color: #888888;\"># generated by other debhelper scripts.<\/span>\n\n<span style=\"color: #888888;\">#DEBHELPER#<\/span>\n\n<span style=\"color: #007020;\">exit <\/span>0\n<\/pre>\n<\/div>\n<p>que adem\u00e1s modifica el archivo <em>\/etc\/environment<\/em> para definir la variable <em>JAVA_HOME<\/em> al directorio donde hemos instalado el entorno JRE. Bueno, en realidad apunta a\u00a0<em>\/opt\/java-oracle\/latest<\/em> porque he pensado que es mejor si tenemos que actualizar la versi\u00f3n en el futuro (puedes apostar tu vida a que s\u00ed ser\u00e1 necesario).<\/p>\n<h4>Enlaces y referencias<\/h4>\n<ul>\n<li><a rel=\"nofollow\" class=\"external text\" href=\"http:\/\/soportedit.aeat.es\/aplicaciones\/eSede.nsf\/\">Instalador de los certificados ra\u00edz AC APE FNMT-RCM y AC RAIZ FNMT-RCM<\/a><\/li>\n<li><a rel=\"nofollow\" class=\"external text\" href=\"http:\/\/soporte.aeat.es\/aplicaciones\/A3Cknowledge.nsf\/vwPreguntasLecturaContribuyentes\/A90AC04A00AFCF9FC12578B2003E73F6?OpenDocument\">Configuraci\u00f3n recomendada de Mozilla Firefox en Linux<\/a><\/li>\n<li><a href=\"http:\/\/d.stavrovski.net\/blog\/post\/installing-oracle-java-7-on-debian-wheezy\"><span class=\"external text\">Installing Oracle JAVA 7 on Debian Wheezy<\/span><\/a><\/li>\n<li><a href=\"http:\/\/kb.mozillazine.org\/About:config_entries\"><span class=\"external text\">Mozilla: About:config entries<\/span><\/a><\/li>\n<\/ul><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8230; un poco a lo bestia pero se puede. Esta entrada pretende ser mi punto de referencia para cuando precise volver a instalar todo el montaje y ser capaz de interactuar con la sede electr\u00f3nica de la Agencia Tributaria.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"1","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","webmentions_disabled_pings":false,"webmentions_disabled":false,"footnotes":""},"categories":[6],"tags":[194,195,197,196],"class_list":["post-114","post","type-post","status-publish","format-standard","hentry","category-debian","tag-aeat","tag-firefox","tag-fnmt","tag-java"],"_links":{"self":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":0,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/posts\/114\/revisions"}],"wp:attachment":[{"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/categories?post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/esferas.org\/msqlu\/wp-json\/wp\/v2\/tags?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}